Aktueller Standort: Startseite> Neueste Artikel> Wie extrahiere ich Schlüsselnamen mit Array_keys () und vergleichen Sie sie dann mit Array_Diff_Uassoc?

Wie extrahiere ich Schlüsselnamen mit Array_keys () und vergleichen Sie sie dann mit Array_Diff_Uassoc?

M66 2025-06-24

In PHP sind Arrays eine sehr leistungsstarke Datenstruktur, mit der wir große Datenmengen speichern und verarbeiten können. Manchmal müssen wir die Schlüsselnamen aus dem Array extrahieren oder zwischen zwei Arrays vergleichen und sicherstellen, dass der Vergleichsprozess die Schlüssel und Werte des Arrays berücksichtigt. Heute werden wir erklären, wie Sie Array_Keys () und Array_Diff_Uassoc () in Kombination verwenden, um dies zu erreichen.

1. Verwenden Sie Array_keys (), um den Schlüsselnamen des Arrays zu extrahieren

Die Funktion array_keys () kann alle Schlüsselnamen aus einem Array extrahieren und sie als indiziertes Array zurückgeben. Diese Funktion ist sehr nützlich, insbesondere wenn Sie mit Tasten eines Arrays arbeiten müssen. Hier ist die grundlegende Verwendungsmethode von array_keys () :

 <?php
$arr = [
    'apple' => 1,
    'banana' => 2,
    'cherry' => 3
];

$keys = array_keys($arr);
print_r($keys);
?>

Ausgabe:

 Array
(
    [0] => apple
    [1] => banana
    [2] => cherry
)

In diesem Beispiel gibt Array_Keys () ein Array zurück, das die Arrayschlüsselnamen enthält. Wir können diese Schlüsselnamen verwenden, um nach Bedarf weitere Vorgänge auszuführen.

2. Verwenden Sie Array_Diff_Uassoc () zum Feinvergleich

Die Funktion array_diff_uassoc () kann die Schlüssel und Werte von zwei Arrays vergleichen und raffinierte Vergleiche basierend auf benutzerdefinierten Vergleichsfunktionen durchführen. Seine Funktion ähnelt array_diff_assoc () , ermöglicht es Ihnen jedoch, Vergleichsregeln anzupassen. Diese Funktion gibt ein Array zurück, das Unterschiede enthält.

Die grundlegende Syntax von array_diff_uassoc () lautet wie folgt:

 array_diff_uassoc(array $array1, array $array2, callable $value_comparator)
  • $ array1 und $ array2 sind die Arrays, die verglichen werden sollen.

  • $ value_comparator ist eine benutzerdefinierte Vergleichsfunktion, die die Werte in einem Array vergleicht.

Schauen wir uns als nächstes ein Beispiel an, wobei Array_Keys () und Array_Diff_Uassoc () kombiniert werden, um einen raffinierten Vergleichsvorgang zu implementieren:

 <?php
// Definieren Sie zwei Arrays
$array1 = [
    'apple' => 1,
    'banana' => 2,
    'cherry' => 3
];

$array2 = [
    'apple' => 1,
    'banana' => 3,
    'cherry' => 3
];

// Benutzerdefinierte Vergleichsfunktionen:Vergleichen Sie, ob die beiden Werte gleich sind
function custom_compare($value1, $value2) {
    return $value1 - $value2;
}

// verwenden array_diff_uassoc Einen raffinierten Vergleich durchführen
$result = array_diff_uassoc($array1, $array2, 'custom_compare');
print_r($result);
?>

Ausgabe:

 Array
(
    [banana] => 2
)

In diesem Beispiel definieren wir zwei Arrays $ Array1 und $ Array2 und verwenden die Funktion Custom_Compare , um ihre Werte zu vergleichen. Array_Diff_Uassoc () gibt ein Array zurück, das Unterschiede enthält, dh der Wert des Bananenschlüssels 2 , das nicht dem Bananenschlüsselwert von 3 in Array2 entspricht, sodass Banane als Differenzergebnis aufgeführt ist.

3. Kombinieren Sie Array_Keys () und Array_Diff_Uassoc (), um den Vergleich des Schlüssennamendifferenz zu erreichen

In der tatsächlichen Verwendung kümmern wir uns möglicherweise nur um bestimmte Schlüsselnamen und hoffen, diese Schlüsselnamen über Array_Keys () zu erhalten und dann Array_Diff_Uassoc () zu verwenden, um sie in raffinierter Weise zu vergleichen. Zum Beispiel möchten wir nur die beiden Tasten von Apfel und Kirsche vergleichen:

 <?php
// Definieren Sie zwei Arrays
$array1 = [
    'apple' => 1,
    'banana' => 2,
    'cherry' => 3
];

$array2 = [
    'apple' => 1,
    'banana' => 3,
    'cherry' => 4
];

// Lassen Sie die Schlüsselnamen vergleichen
$keys_to_compare = array_keys($array1); // ['apple', 'banana', 'cherry']

// Benutzerdefinierte Vergleichsfunktionen:Vergleichen Sie, ob die beiden Werte gleich sind
function custom_compare($value1, $value2) {
    return $value1 - $value2;
}

// Vergleichen Sie und kehren Sie zu dem Unterschied zurück
$result = array_diff_uassoc(
    array_intersect_key($array1, array_flip($keys_to_compare)),
    array_intersect_key($array2, array_flip($keys_to_compare)),
    'custom_compare'
);

print_r($result);
?>

Ausgabe:

 Array
(
    [cherry] => 3
)

In diesem Beispiel extrahieren wir zuerst alle Schlüsselnamen des Array $ arrray1 über Array_keys () . Dann behalten wir nur die Schlüssel, die über Array_intersect_key () verglichen werden müssen ( Apple und Cherry ). Schließlich wurde ein guter Vergleich mit Array_Diff_Uassoc () durchgeführt, und das Ergebnis zeigte, dass der Wert der Kirsche 3 in $ Array1 und 4 in $ array2 beträgt, wodurch die Kirsche zurückgegeben wurde.

abschließend

Durch Kombinieren von Array_Keys () und Array_Diff_Uassoc () können wir die Schlüsselwerte in Arrays flexibler vergleichen. Mit Array_Keys () können wir die Schlüsselnamen des Arrays einfach extrahieren, während Array_diff_uassoc () es uns ermöglicht, die Vergleichsregeln anzupassen, um sicherzustellen, dass die Schlüssel und Werte des Arrays während des Vergleichsprozesses berücksichtigt werden. Durch die Beherrschung der Verwendung dieser beiden Funktionen kann unsere Fähigkeit, Arrays in PHP zu verarbeiten, erheblich verbessern.