Heim > Backend-Entwicklung > PHP-Tutorial > Wie lassen sich Unterschiede in assoziativen Arrays basierend auf einem bestimmten Schlüssel effizient finden?

Wie lassen sich Unterschiede in assoziativen Arrays basierend auf einem bestimmten Schlüssel effizient finden?

Barbara Streisand
Freigeben: 2024-12-26 05:04:13
Original
239 Leute haben es durchsucht

How to Efficiently Find Differences in Associative Arrays Based on a Specific Key?

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),
);
Nach dem Login kopieren

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'];
}
Nach dem Login kopieren

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');
Nach dem Login kopieren

Die Variable $arrdiff enthält das gewünschte Ergebnis:

Array
(
    [3] => Array
        (
            [ITEM] => 4
        )
)
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage