Vergleich assoziativer Wertunterschiede in zweidimensionalen Arrays
Bei der Programmierung müssen wir oft zwei Arrays vergleichen und nur die Unterschiede extrahieren. Diese Aufgabe wird schwieriger, wenn die Arrays assoziative Daten enthalten, insbesondere wenn sich der Vergleich auf bestimmte Schlüsselwerte konzentrieren soll.
Betrachten Sie zwei Arrays mit assoziativen Datenzeilen:
$array1 = array( array('ITEM' => 1), array('ITEM' => 2), array('ITEM' => 3), ); $array2 = array( array('ITEM' => 2), array('ITEM' => 3), array('ITEM' => 1), array('ITEM' => 4), );
Das Ziel ist Filtern Sie das zweite Array, um im ersten Array vorhandene Elemente auszuschließen, vergleichen Sie jedoch insbesondere die „ITEM“-Werte.
Verwenden array_udiff mit benutzerdefinierter Vergleichsfunktion
Die Funktion array_diff() reicht für diesen Zweck nicht aus, da sie ganze Zeilen vergleicht. Um uns ausschließlich auf die „ITEM“-Werte zu konzentrieren, definieren wir eine benutzerdefinierte Vergleichsfunktion für array_udiff().
function udiffCompare($a, $b) { return $a['ITEM'] - $b['ITEM']; }
Diese Funktion subtrahiert die „ITEM“-Werte und gibt die Differenz zurück.
Jetzt , können wir diese Funktion in array_udiff() verwenden:
$arrdiff = array_udiff($arr2, $arr1, 'udiffCompare');
Die Variable $arrdiff enthält das gewünschte Ergebnis:
Array ( [3] => Array ( [ITEM] => 4 ) )
Dieser Ansatz behält die vorhandene Array-Struktur bei und konzentriert sich auf die spezifischen „ITEM“-Schlüsselwerte zum Vergleich.
Das obige ist der detaillierte Inhalt vonWie lassen sich Unterschiede in assoziativen Arrays basierend auf einem bestimmten Schlüssel effizient finden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!