Heim > Artikel > Backend-Entwicklung > Detaillierte Erklärung der Funktion array_diff_assoc() in PHP
Vergleichen Sie die Schlüsselnamen und Schlüsselwerte der beiden Arrays und geben Sie die Differenz zurück:
<?php $a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow"); $a2=array("a"=>"red","b"=>"green","c"=>"blue"); $result=array_diff_assoc($a1,$a2); print_r($result); ?>
Definition und Verwendung
array_diff_assoc( ) Funktion Wird verwendet, um die Schlüsselnamen und Schlüsselwerte von zwei (oder mehr) Arrays zu vergleichen und die Differenz zurückzugeben.
Diese Funktion vergleicht die Schlüsselnamen und Schlüsselwerte von zwei (oder mehr) Arrays und gibt ein Differenzarray zurück, das alles im verglichenen Array (Array1) enthält, jedoch nicht in einem anderen Schlüsselname und Schlüsselwert im Parameterarray (Array2 oder Array3 usw.).
Syntax
array_diff_assoc(array1,array2,array3...);
Parameter Das erste Array, das mit anderen Arrays verglichen wird.
array2 Erforderlich. Das Array, das mit dem ersten Array verglichen werden soll.
array3,... Optional. Zusätzliches Array zum Vergleich mit dem ersten Array.
Gibt ein Differenzarray zurück, das alle Schlüsselnamen und Schlüsselwerte enthält, die im verglichenen Array (Array1), aber in keinem anderen Parameterarray (Array2 oder Array3 usw.) enthalten sind.
Vergleichen Sie die Schlüsselnamen und Schlüsselwerte von zwei Arrays und geben Sie die Differenz zurück:
Vergleichen Sie die Schlüsselnamen und Schlüsselwerte von drei Arrays und geben Sie die Differenz zurück:<?php $a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow"); $a2=array("e"=>"red","f"=>"green","g"=>"blue"); $result=array_diff_assoc($a1,$a2); print_r($result); ?>1: Vorspiel zur Verwendung von array_diff und array_diff_assocBei der Entwicklung von Einkaufszentren ist es häufig erforderlich, Daten hinzuzufügen, zu löschen, zu ändern und zu überprüfen. Unter anderem müssen wir beim Aktualisieren von Daten oft nur ein Feld oder einen Teil der Felder aktualisieren und nicht alle Felder zusammen aktualisieren. Hier müssen wir also herausfinden, welche aktualisiert werden müssen und welche nicht müssen aktualisiert werden. Sowohl array_diff als auch array_diff_assoc können die Differenz des Arrays überprüfen. Wir müssen nur das aus der Datenbank erhaltene alte Datenarray mit dem neuen übermittelten Datenarray vergleichen. Sowohl array_diff als auch array_diff_assoc können das Differenzarray zurückgeben.
<?php $a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow"); $a2=array("a"=>"red","f"=>"green","g"=>"blue"); $a3=array("h"=>"red","b"=>"green","g"=>"blue"); $result=array_diff_assoc($a1,$a2,$a3); print_r($result); ?>
Zwei: Lernen Sie array_diff und array_diff_assoc
array array_diff( array $array1 , array $array2 [, array $... ] ), gibt ein Array zurück und das Array enthält array1 Alle Elemente im Array, die andere Werte als andere Arrays haben, und die entsprechenden Schlüsselnamen bleiben erhalten. Diese Funktion kann jedoch nur Differenzvergleiche in der ersten Dimension mehrdimensionaler Arrays durchführen. Darüber hinaus vergleicht dieser Vergleich nur Schlüsselwerte und hat nichts mit Schlüsselnamen zu tun (es werden nur Werte mit unterschiedlichen Schlüsselwerten in zwei (oder mehr) Arrays gefunden). Beispiel: array_diff kann die Differenz c_pid zwischen zwei Arrays finden:array_diff()
Wenn sich jedoch ein Schlüsselwert des Arrays mit dem geänderten Wert überschneidet, kann array_diff den geänderten Wert nicht erkennen, wie folgt:
Unter normalen Umständen sind die aktualisierten Elemente beim Vergleich zwischen Array1 und Array2 c_pid und c_order, aber das Ergebnis erhält nur den Unterschied von c_order. Warum?
Persönliches Verständnis: array_diff() vergleicht den Wert von Array1 mit dem Wert von Array2, unabhängig vom Schlüsselnamen, sodass der Wert von c_pid von Array1 im c_level von Array2 gefunden wird, sodass der Unterschied in c_pid beträgt ignoriert.
Ich werde nicht näher darauf eingehen. Es wird genauso verwendet wie array_diff(). Der Unterschied besteht darin, dass es mit Schlüsselnamen verglichen wird, was bedeutet, dass nur einige wenige gefunden werden Schlüssel im Array. Elemente mit demselben Namen und unterschiedlichen Schlüsselwerten, das heißt, im zweiten Fall von array_diff oben kann der Unterschied zwischen c_pid und c_order ermittelt werden. Wenn Sie es nicht glauben, können Sie es versuchen. Ich bin ein Neuling, am Anfang ist alles schwierig. Es ist mein erstes Mal, dass ich einen Blogbeitrag schreibe. Auch wenn ich ein Gericht bestelle, hoffe ich, dass alle Meister es verstehen.array_diff_assoc()
Das obige ist der detaillierte Inhalt vonDetaillierte Erklärung der Funktion array_diff_assoc() in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!