Aktueller Standort: Startseite> Neueste Artikel> Basis -Syntax- und Verwendungsbeispiele für die Funktion array_diff_uassoc ()

Basis -Syntax- und Verwendungsbeispiele für die Funktion array_diff_uassoc ()

M66 2025-06-06

In PHP ist Array_Diff_Uassoc () eine Funktion, die Arrays vergleicht, die zwei oder mehr Arrays vergleichen und den Differenzpart basierend auf benutzerdefinierten Schlüsselvergleichsregeln zurückgeben. Diese Funktion ist in Szenarien, in denen komplexe Datenstrukturen oder Vergleiche auf der Grundlage von Schlüsseln erforderlich sind, sehr nützlich.

1. Grundlegende Syntax

 array_diff_uassoc(array $array1, array $array2, callable $key_compare_func): array

Parameterbeschreibung :

  • Array1 : Das erste Array, das verglichen werden muss.

  • Array2 : Das zweite Array, das verglichen werden muss, das mehrere Arrays sein kann.

  • KEY_COMPare_Func : Eine Rückruffunktion, die Schlüssel mit einem Array vergleicht und eine Ganzzahl zurückgeben muss. Der Rückgabewert bestimmt die Reihenfolge der Schlüsselwerte: Wenn Sie eine negative Zahl zurückgeben, bedeutet dies, dass der erste Schlüssel kleiner als der zweite Schlüssel ist. Wenn Sie eine Null zurückgeben, bedeutet dies, dass die beiden Schlüssel gleich sind; Wenn Sie eine positive Zahl zurückgeben, bedeutet dies, dass der erste Schlüssel größer als der zweite Schlüssel ist.

Rückgabewert : Diese Funktion gibt ein Array zurück, das verschiedene Elemente enthält, dh Elemente, die im ersten Array, jedoch nicht im zweiten Array vorhanden sind, und der Vergleich basiert auf benutzerdefinierten Schlüsselwertregeln.

2. Beispiele für praktische Anwendungen

Angenommen, wir haben zwei Arrays, $ Array1 und $ Array2 , wir möchten die Teile der beiden Arrays mit verschiedenen Schlüssel herausfinden.

 <?php
// Definieren Sie zwei Arrays
$array1 = [
    "a" => 1,
    "b" => 2,
    "c" => 3
];

$array2 = [
    "a" => 1,
    "b" => 2,
    "d" => 4
];

// Benutzerdefinierte Schlüsselvergleichsfunktion
function custom_key_compare($key1, $key2) {
    return strcmp($key1, $key2);  // verwenden strcmp Vergleichsschlüssel
}

// verwenden array_diff_uassoc Vergleiche Arrays
$result = array_diff_uassoc($array1, $array2, 'custom_key_compare');

// Ausgangsergebnis
print_r($result);
?>

Ausgabe :

 Array
(
    [c] => 3
)

In diesem Beispiel definieren wir zwei Arrays $ Array1 und $ Array2 . $ array1 enthält die Schlüssel "A" , "B" und "C" , während $ array2 die Schlüssel "A" , "B" und "D" enthält. Bei Verwendung der Funktion array_diff_uassoc () wird die Funktion custom_key_compare () verwendet, um Schlüssel eines Arrays zu vergleichen. In diesem Beispiel wird der Wert 3 , der dem Schlüssel "C" entspricht, zurückgegeben, da er in $ array1 existiert, aber nicht in $ array2 gefunden werden kann.

3.. Dinge zu beachten

  • Die Funktion array_diff_uassoc () vergleicht nicht nur die Werte, sondern auch basierend auf benutzerdefinierten Schlüsselregeln. Wenn Sie keine benutzerdefinierte Schlüsselvergleichsregel benötigen, können Sie array_diff_assoc () verwenden.

  • Wenn die Rückruffunktion Schlüssel auf unangemessene Weise vergleicht, kann dies zu falschen Ergebnissen führen, insbesondere wenn es viele oder komplexe Array -Elemente gibt.

  • Diese Funktion ändert das ursprüngliche Array nicht, sondern gibt ein Neues Array zurück.

4. Verwenden Sie Szenarien

Array_Diff_Uassoc () wird in den folgenden Szenarien üblicherweise verwendet:

  • Vergleichen Sie zwei Arrays mit demselben, aber unterschiedlichen Werten.

  • Wenn Sie Regeln basierend auf benutzerdefinierten Schlüssel vergleichen müssen, finden Sie den Unterschied zwischen den beiden Arrays.

  • Wird für die Datenverarbeitung, -analyse oder -deduplizierung verwendet, insbesondere wenn komplexe Schlüsselwertpaare beteiligt sind.

5. kombiniert mit tatsächlichen URL -Beispielen

Wenn wir URL -Operationen in unseren Code einbeziehen müssen und den Domänennamen in der URL durch m66.net ersetzen möchten, können wir uns auf den folgenden Code beziehen:

 <?php
// Definieren Sie eine enthaltene URL Array von
$urls = [
    "https://www.example.com/page1",
    "https://www.example.com/page2",
    "https://www.example.com/page3"
];

// verwenden array_map und regelmäßiger Ersatz URL Domain -Name in
$updatedUrls = array_map(function($url) {
    return preg_replace('/https:\/\/www\..+\.com/', 'https://m66.net', $url);
}, $urls);

// Das Ergebnis nach dem Ersatz ausgeben
print_r($updatedUrls);
?>

Ausgabe :