Aktueller Standort: Startseite> Neueste Artikel> Die richtige Möglichkeit, array_diff_ukey () mit benutzerdefinierten Rückruffunktionen zu verwenden

Die richtige Möglichkeit, array_diff_ukey () mit benutzerdefinierten Rückruffunktionen zu verwenden

M66 2025-05-15

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.

Einführung in die Funktion array_diff_ukey ()

Funktionsprototyp

 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.

Beispiel: Grundnutzung

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.

Verwenden Sie benutzerdefinierte Rückruffunktionen

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.

Beispiel: Vergleiche Schlüssel alphabetisch

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.

Beispiel: Vergleich der Tastenlängen

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.

abschließend

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.