Heim > Backend-Entwicklung > PHP-Tutorial > Detaillierte Erklärung der Funktion array_diff_assoc() in PHP

Detaillierte Erklärung der Funktion array_diff_assoc() in PHP

PHP中文网
Freigeben: 2023-03-16 19:52:02
Original
4191 Leute haben es durchsucht

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

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

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);
?>
Nach dem Login kopieren
1: Vorspiel zur Verwendung von array_diff und array_diff_assoc

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

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

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


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!

Verwandte Etiketten:
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage