Heim > Backend-Entwicklung > PHP-Tutorial > Wie kann ich assoziative Arrays basierend auf einer bestimmten Spalte effizient vergleichen und filtern?

Wie kann ich assoziative Arrays basierend auf einer bestimmten Spalte effizient vergleichen und filtern?

Susan Sarandon
Freigeben: 2024-12-11 14:39:10
Original
549 Leute haben es durchsucht

How Can I Efficiently Compare and Filter Associative Arrays Based on a Specific Column?

Unterschiede zwischen assoziativen Array-Spalten finden

Sie haben zwei Arrays mit Zeilen assoziativer Daten und möchten das zweite Array basierend darauf filtern die Werte einer bestimmten Spalte im ersten Array. Die Verwendung von array_diff() reicht hierfür nicht aus, da dabei die gesamten Zeilen und nicht nur die gewünschte Spalte verglichen werden.

Um dieses Problem zu beheben, können Sie die Funktion array_udiff() nutzen, mit der Sie eine benutzerdefinierte Vergleichsfunktion definieren können . Diese Funktion sollte nur die Werte der gewünschten Spalte vergleichen, in diesem Fall des Schlüssels „ITEM“.

So implementieren Sie dies:

function udiffCompare($a, $b)
{
    return $a['ITEM'] - $b['ITEM'];
}

$arrdiff = array_udiff($arr2, $arr1, 'udiffCompare');
Nach dem Login kopieren

Dies definiert eine benutzerdefinierte Vergleichsfunktion udiffCompare Dadurch werden die „ITEM“-Werte der beiden verglichenen Zeilen subtrahiert. Das Ergebnis dieser Subtraktion bestimmt, ob die Zeilen gleich, unterschiedlich oder welche größer ist.

Indem Sie udiffCompare als drittes Argument an array_udiff() übergeben, weisen Sie die Funktion im Wesentlichen an, diesen benutzerdefinierten Vergleich zu verwenden Funktion, um basierend auf der Spalte „ITEM“ zu bestimmen, welche Elemente in $arr2 sich von Elementen in $arr1 unterscheiden.

Die Ausgabe dieses Codes ist ein Array, das nur die Elemente von enthält $arr2, die in $arr1 nicht vorhanden sind, wobei die ursprüngliche Array-Struktur erhalten bleibt:

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

Diese Demonstration ermöglicht es Ihnen, ein Array basierend auf einem bestimmten Spaltenwert in einem anderen Array effektiv zu filtern und dabei die ursprüngliche Array-Struktur beizubehalten.

Das obige ist der detaillierte Inhalt vonWie kann ich assoziative Arrays basierend auf einer bestimmten Spalte effizient vergleichen und filtern?. 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