Aktueller Standort: Startseite> Neueste Artikel> Detaillierte Erläuterung der Funktion array_uintersect_uassoc () in PHP: So vergleichen Sie die Schlüssel- und Wertschöpfung von Arrays

Detaillierte Erläuterung der Funktion array_uintersect_uassoc () in PHP: So vergleichen Sie die Schlüssel- und Wertschöpfung von Arrays

gitbox 2025-06-13

1. Was ist die Funktion array_uintersect_uassoc ()

In PHP ist Array_Uintersect_uassoc () eine Funktion, mit der der Schnittpunkt von zwei oder mehr Arrays berechnet wird. Im Gegensatz zum herkömmlichen Array_intersect () vergleicht Array_Uintersect_uassoc () nicht nur die Werte des Arrays, sondern auch die Schlüssel des Arrays und unterstützt benutzerdefinierte Rückruffunktionen, um den Vergleichsprozess zu steuern.

1.1 Funktionsdefinition

Die Funktion array_uintersect_uassoc () ist wie folgt definiert:

 
function array_uintersect_uassoc(array $array1, array $array2, array ...$arrays, callable $key_compare_func, callable $value_compare_func) : array;
        

Funktionsparameter Beschreibung:

  • Array1, Array2, ... : Array, das verglichen werden muss.
  • key_compare_func : Eine Rückruffunktion, mit der Array -Tasten verglichen werden.
  • value_compare_func : Eine Rückruffunktion, mit der Array -Werte verglichen werden.

Rückgabewert: Diese Funktion gibt ein Array zurück, das den Schnittpunkt von Schlüssel und Wert zwischen zwei oder mehr Arrays enthält.

1.2 Rückruffunktion

Die Funktion array_uintersect_uassoc () erfordert zwei Rückruffunktionen, um die Schlüssel und Werte eines Arrays zu vergleichen. Diese beiden Rückruffunktionen sollten einen Ganzzahlwert zurückgeben, um festzustellen, ob die beiden Elemente gleich oder in Größe sind. Rückkehr 0 bedeutet eine Übereinstimmung und Rückgabe positiver oder negativer Mittel, die nicht übereinstimmen.

Hier ist ein Beispiel, das zeigt, wie die Funktion array_uintersect_uassoc () und ihre Rückruffunktion verwendet werden:

 
$array1 = array('a' => 'apple', 'b' => 'banana', 'c' => 'cherry');
$array2 = array('c' => 'cherry', 'd' => 'date', 'e' => 'elderberry');

$result = array_uintersect_uassoc(
    $array1,
    $array2,
    'strcasecmp',  // Tastendame Vergleichsrückruffunktion
    function($a, $b) {  // Wertvergleichs -Rückruffunktion
        if ($a === $b) {
            return 0;
        }
        return ($a > $b) ? 1 : -1;
    }
);

print_r($result);
        

Das Ausgangsergebnis ist:

 Array ([c] => Kirsche)

Im obigen Code verwenden wir StrCasecmp (), um Schlüsselnamen (Fall unempfindlich) zu vergleichen und eine anonyme Funktion zu definieren, um die Größe des Wertes zu vergleichen.

2. Verwenden Sie Szenarien der Funktion array_uintersect_uassoc ()

Die Funktion array_uintersect_uassoc () ist sehr geeignet, um Elemente zu vergleichen, die in mehreren Arrays üblich sind, insbesondere wenn Sie Schlüssel und Werte eines Arrays basierend auf benutzerdefinierten Regeln vergleichen müssen. Angenommen, Sie verarbeiten die Interessen und Hobbys von Benutzern einer Website. Sie können diese Funktion verwenden, um gemeinsame Interessen unter mehreren Benutzern zu finden.

3. Anwendungsbeispiel für die Funktion array_uintersect_uassoc ()

Angenommen, wir haben einen Autoclub und jedes Mitglied hat unterschiedliche Fahrzeuginformationen. Wir möchten die zwischen dem Club und den Mitgliedern geteilten Fahrzeugen finden. Wir können array_uintersect_uassoc () verwenden, um zu vergleichen:

 
$member_cars = array(
    'Amanda' => 'Porsche',
    'Tina' => 'Audi',
    'Luis' => 'Mercedes',
    'Tom' => 'BMW'
);

$club_cars = array(
    'Rob' => 'Porsche',
    'Tina' => 'Audi',
    'Lena' => 'Mercedes',
    'Tom' => 'BMW'
);

$common_cars = array_uintersect_uassoc(
    $member_cars,
    $club_cars,
    function($key1, $key2) {
        return strcmp($key1, $key2);
    },
    function($value1, $value2) {
        return strcmp($value1, $value2);
    }
);

print_r($common_cars);
        

Das Ausgangsergebnis ist:

 Array ([tina] => audi [luis] => mercedes [tom] => bmw)

Dieses Beispiel zeigt, wie man Fahrzeuge, die Mitglieder und Clubs besitzen, vergleichen.

4. Zusammenfassung

Die Funktion array_uintersect_uassoc () ist ein effizientes Array -Vergleichstool, mit dem Sie in mehreren Arrays gemeinsame Schlüssel und Werte finden können. Mit benutzerdefinierten Rückruffunktionen können Sie die Vergleichsregeln von Schlüssel und Werten genau steuern, damit Sie sie flexibel auf verschiedene Szenarien anwenden können.

Denken Sie bei der Verwendung dieser Funktion daran, die entsprechende Rückruffunktion für den Tasten- und Wertevergleiche zu verarbeiten, um genaue Ergebnisse zu gewährleisten.