In PHP wird die Funktion array_diff_ukey () verwendet, um Schlüssel von zwei oder mehr Arrays zu vergleichen und Elemente zurückzugeben, die sich von denen anderer Arrays unterscheiden. Diese Funktion ist sehr nützlich, insbesondere wenn wir Schlüssel eines Arrays durch benutzerdefinierte Regeln vergleichen müssen. Mit der Funktion array_diff_ukey () können wir eine Rückruffunktion angeben, um die Regeln für den Schlüsselvergleich anzupassen. In diesem Artikel wird vorgestellt, wie Sie die Funktion array_diff_ukey () korrekt verwenden, und wie Sie eine benutzerdefinierte Rückruffunktion verwenden, um Tasten zu vergleichen.
array_diff_ukey(array $array1, array $array2, callable $key_compare_func): array
Array1 : Das erste Array, das zum Vergleich verwendet wird.
Array2 : Im zweiten Array können auch andere Arrays als Vergleichsobjekte übergeben werden.
KEY_COMPare_Func : Eine Rückruffunktion zum Anpassen der Vergleichsregeln von Schlüssel. Diese Funktion nimmt zwei Parameter vor, repräsentiert die Schlüssel in zwei Arrays und gibt einen Ganzzahlwert zurück:
Wenn der erste Schlüssel kleiner als der zweite Schlüssel ist, wird ein negativer Wert zurückgegeben.
Wenn der erste Schlüssel größer als der zweite Schlüssel ist, wird ein positiver Wert zurückgegeben.
Wenn die beiden Schlüssel gleich sind, geben Sie Null zurück.
Schauen wir uns zunächst ein einfaches Beispiel an, um die grundlegende Verwendung der Funktion array_diff_ukey () zu verstehen.
<?php
$array1 = [
1 => 'apple',
2 => 'banana',
3 => 'cherry',
];
$array2 = [
3 => 'cherry',
4 => 'date',
];
$result = array_diff_ukey($array1, $array2, function($key1, $key2) {
return $key1 - $key2;
});
print_r($result);
?>
Ausgangsergebnis:
Array
(
[1] => apple
[2] => banana
)
In diesem Beispiel vergleichen wir die Schlüssel in Array1 und Array2 und filtern gemäß den Regeln in der Rückruffunktion. Da Key1 und Key2 numerische Schlüssel sind und wir die Standard -Numerische Vergleichsregel verwenden, geben wir schließlich die Elemente zurück, die den Tasten nicht in Array2 entsprechen.
Die Kraft der Funktion array_diff_ukey () besteht darin, dass Sie die Art und Weise ändern können, wie Schlüssel verglichen werden, indem die Rückruffunktion anpassen. Rückruffunktionen können anhand verschiedener Bedingungen verglichen werden, wie z. B. alphabetische Reihenfolge, numerische Größe oder nach anderen Geschäftsregeln.
Angenommen, wir haben zwei Arrays und möchten die Schlüssel nach alphabetischer Reihenfolge vergleichen:
<?php
$array1 = [
'apple' => 'fruit1',
'banana' => 'fruit2',
'cherry' => 'fruit3',
];
$array2 = [
'cherry' => 'fruit3',
'date' => 'fruit4',
];
$result = array_diff_ukey($array1, $array2, function($key1, $key2) {
return strcmp($key1, $key2);
});
print_r($result);
?>
Ausgangsergebnis:
Array
(
[apple] => fruit1
[banana] => fruit2
)
In diesem Beispiel verwenden wir die Funktion von Strcmp () , um die Schlüssel des Arrays ( "Apple" , "Banane" usw.) zu vergleichen. Die Funktion STRCMP () vergleicht die Zeichenfolgen alphabetisch und der Rückgabewert bestimmt die Reihenfolge und Gleichheit der beiden Schlüssel.
Wir können auch die Größe des Schlüssels entsprechend der Länge des Schlüssels vergleichen:
<?php
$array1 = [
'a' => 'apple',
'banana' => 'fruit',
'cherry' => 'berry',
];
$array2 = [
'cherry' => 'fruit',
'date' => 'sweet',
];
$result = array_diff_ukey($array1, $array2, function($key1, $key2) {
return strlen($key1) - strlen($key2);
});
print_r($result);
?>
Ausgangsergebnis:
Array
(
[banana] => fruit
)
In diesem Beispiel verwenden wir die Funktion strlen (), um die Länge des Schlüssels zu vergleichen. Auf diese Weise können einige komplexere benutzerdefinierte Vergleichsregeln implementiert werden.
Durch die Funktion array_diff_ukey () können Sie die Schlüssel eines Arrays flexibel vergleichen und die Rückruffunktion verwenden, um Ihre eigenen Vergleichsregeln zu definieren. Dies macht Array -Operationen flexibler und leistungsfähiger und kann mit verschiedenen komplexen Szenarien umgehen.