Heim > Artikel > Backend-Entwicklung > Detaillierte Erläuterung der Verwendung der PHP-Funktion array_intersect_uassoc()
array_intersect_uassoc() ist eine sehr nützliche Funktion in der PHP-Sprache. Sie kann verwendet werden, um die Schlüssel und Schlüsselwerte von zwei oder mehr Arrays zu vergleichen und ein neues Array zurückzugeben, das alle Schlüssel und Schlüsselwerte enthält Alle Eingabearrays schneiden sich. In diesem Artikel stellen wir die Verwendung der Funktion array_intersect_uassoc() im Detail vor und stellen einige leicht verständliche Beispiele bereit.
Ein einfaches Anwendungsbeispiel ist:
$array1 = array("a" => "green", "b" => "blue", "c" => "red"); $array2 = array("a" => "green", "b" => "blue", "d" => "yellow"); $result = array_intersect_uassoc($array1, $array2, "compareFunc"); print_r($result);
In diesem Beispiel haben wir zwei Arrays, $array1 und $array2, die beide verschiedene Schlüssel und entsprechende Schlüsselwerte enthalten. Wir übergeben diese beiden Arrays an die Funktion array_intersect_uassoc() und geben eine Rückruffunktion namens „compareFunc“ an. Diese Funktion vergleicht die Beziehung zwischen Array-Elementen und stellt ihre Beziehung dar, indem sie einen ganzzahligen Wert zurückgibt. In diesem Beispiel geben wir den Wert der Array-Variablen $result aus, um den von der Funktion zurückgegebenen Schnittpunkt anzuzeigen.
Es ist erwähnenswert, dass wir eine Rückruffunktion definieren müssen, die zum Vergleichen der Schlüssel und Schlüsselwerte des Arrays verwendet wird. Die Parameter $key1 und $key2 empfangen jeweils die Schlüsselnamen der beiden Arrays, und die Parameter $value1 und $value2 empfangen jeweils die Schlüsselwerte der beiden Arrays. In der Funktion verwenden wir die Funktion strcmp() für den String-Vergleich, die 0 zurückgibt, wenn die beiden Strings gleich sind, andernfalls einen positiven oder negativen Wert.
function compareFunc($key1, $key2, $value1, $value2) { $cmp_key = strcmp($key1, $key2); if ($cmp_key == 0) { $cmp_value = strcmp($value1, $value2); return $cmp_value; } else { return $cmp_key; } }
Da wir im vorherigen Schritt die benutzerdefinierte Funktion „compareFunc()“ als dritten Parameter an die Funktion „array_intersect_uassoc()“ übergeben haben, wird diese Funktion beim Vergleich zweier Arrays aufgerufen. Angenommen, das Array enthält die folgenden Elemente:
$array1 = array("a"=>1, "b"=>2, "c"=>3, "d"=>4); $array2 = array("a"=>1, "b"=>3, "c"=>5, "d"=>6);
Nach dem Ausführen von array_intersect_uassoc($array1, $array2, „compareFunc“) wird ein neues Array zurückgegeben, dessen Elemente die Elemente sind, die in beiden Eingabearrays darin vorhanden sind Das Beispiel ist: array("a"=>1).
Zusätzlich zur Verwendung von String-Vergleichsfunktionen zum Vergleichen von Array-Elementen unterstützt die Funktion array_intersect_uassoc() auch die Verwendung benutzerdefinierter Vergleichsfunktionen zum Vergleich. Angenommen, wir haben die folgenden zwei Arrays:
$array1 = array("a"=>1, "b"=>2, "c"=>3, "d"=>4); $array2 = array("a"=>1, "b"=>3, "c"=>5, "d"=>6);
Wir können verschiedene Rückruffunktionen verwenden, um diese beiden Arrays zu vergleichen. Einer könnte zwei ganze Zahlen vergleichen, während der andere zwei Zeichenfolgen vergleicht. Wir können die Vergleichsfunktion wie folgt implementieren:
function compareFuncInt($a, $b) { if($a === $b) return 0; return ($a > $b) ? 1 : -1; } function compareFuncStr($a, $b) { return strcmp($a, $b); }
Beim Aufruf der Funktion array_intersect_uassoc() müssen wir nur verschiedene Vergleichsfunktionen angeben:
$result1 = array_intersect_uassoc($array1, $array2, "compareFuncInt"); $result2 = array_intersect_uassoc($array1, $array2, "compareFuncStr");
In diesem Beispiel verwenden wir die benutzerdefinierten Funktionen CompareFuncInt() und CompareFuncStr(), The Ersteres wird für den Ganzzahlvergleich verwendet, während letzteres für den Zeichenfolgenvergleich verwendet wird. Nach der Vergleichsfunktion speichern wir die Ergebnisse des gesamten Vergleichs zur einfacheren Anzeige in einem anderen Ergebnisarray.
Kurz gesagt, array_intersect_uassoc() ist eine leistungsstarke und flexible Funktion, die die Schlüssel und Schlüsselwerte mehrerer Arrays vergleichen und deren Schnittmenge ausgeben kann. Diese Funktion verfügt über viele verschiedene Nutzungs- und Konfigurationsmöglichkeiten, sodass Sie entsprechend Ihren tatsächlichen Bedürfnissen flexibel sein sollten.
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Verwendung der PHP-Funktion array_intersect_uassoc(). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!