Aktueller Standort: Startseite> Neueste Artikel> Verwenden Sie Array_map (), um Arrays zu konvertieren und dann Array_Diff_Uassoc () zu vergleichen

Verwenden Sie Array_map (), um Arrays zu konvertieren und dann Array_Diff_Uassoc () zu vergleichen

M66 2025-05-15

In PHP sind array_map () und array_diff_uassoc () zwei sehr nützliche Funktionen, die uns helfen können, Arrays in verschiedenen Szenarien zu verarbeiten und zu vergleichen. In diesem Artikel werden zuerst Arrays mit Array_map () umgewandelt, dann Array_Diff_Uassoc () zum Vergleich verwendet und spezifische Beispiele angeben.

1. Einführung in die Funktion array_map ()

Die Funktion array_map () kann jedes Element eines Arrays durch eine Rückruffunktion konvertieren. Die grundlegende Syntax ist wie folgt:

 array_map(callable $callback, array $array1, array ...$arrays);
  • $ Callback : Eine Rückruffunktion, die zur Verarbeitung von Array -Elementen verwendet wird.

  • $ Array1, ... $ Arrays : Ein oder mehrere Eingabe -Arrays.

Array_map () gibt ein neues Array zurück, bei dem jedes Element ein Wert ist, der von der $ Callback -Funktion verarbeitet wird.

2. Einführung in die Funktion array_diff_uassoc ()

Die Funktion array_diff_uassoc () wird verwendet, um zwei oder mehr Arrays zu vergleichen, wodurch Elemente im ersten Array mit weder Schlüsselnamen noch Werte im Vergleich zu anderen Arrays zurückgegeben werden. Im Gegensatz zum regulären Array_DIFF () ermöglicht es uns mit Array_Diff_Uassoc () eine benutzerdefinierte Vergleichsfunktion zum Vergleichen von Schlüsselnamen.

Die grundlegende Syntax ist wie folgt:

 array_diff_uassoc(array $array1, array $array2, callable $key_compare_func);
  • $ array1 : Das erste Array, das verglichen wird.

  • $ array2 : Das zweite Array zu vergleichen.

  • $ key_compare_func : Eine Rückruffunktion, mit der Arrayschlüsselnamen verglichen werden.

3. Beispiel: Verwenden Sie Array_Map () und Array_Diff_Uassoc () in Kombination

Schauen wir uns nun ein praktisches Beispiel an, wie Sie den Wert eines Arrays mit Array_Map () konvertieren und dann für Vergleich Array_Diff_Uassoc () verwenden.

Angenommen, wir haben zwei Arrays, die die Preise und Namen der beiden Produktionssätze repräsentieren:

 $products1 = [
    101 => "Apple",
    102 => "Banana",
    103 => "Orange"
];

$products2 = [
    101 => "Apple",
    102 => "Grapes",
    104 => "Mango"
];

// Preis
$prices1 = [
    101 => 3,
    102 => 2,
    103 => 1
];

$prices2 = [
    101 => 3,
    102 => 2.5,
    104 => 1.5
];

Nehmen wir an, wir möchten den Produktnamen in Großbuchstaben umwandeln und verwenden array_diff_uassoc (), um Elemente mit unterschiedlichen Preisen und denselben Schlüsselnamen in zwei Preis -Arrays zu vergleichen.

 // Konvertieren Sie den Produktnamen zuerst in Großbuchstaben
$products1 = array_map('strtoupper', $products1);
$products2 = array_map('strtoupper', $products2);

// verwenden array_diff_uassoc 比较Preis数组(Der Schlüsselname ist der gleiche,Preis不同)
$price_diff = array_diff_uassoc($prices1, $prices2, function ($key1, $key2) {
    return $key1 - $key2;
});

print_r($price_diff);

4. Erklären Sie den Code

  1. Wir verwenden Array_Map ('Strtoupper', $ products1) und Array_Map ('Strtoupper', $ products2), um Produktnamen in Großbuchstaben umzuwandeln. Auf diese Weise können wir sicherstellen, dass der Vergleich der Namen nicht vom oberen und unteren Fall beeinflusst wird.

  2. array_diff_uassoc () wird verwendet, um Preisarrays zu vergleichen. Wir bieten eine einfache Rückruffunktion zum Vergleichen von Schlüsselnamen ( $ key1 - $ key2 ). Wenn die Schlüsselnamen der beiden Arrays gleich sind, die entsprechenden Preise jedoch unterschiedlich sind, gibt Array_Diff_Uassoc () diese Elemente zurück.

5. Ausgangsergebnis

Beim Ausführen des obigen Code erhalten wir eine Ausgabe:

 Array
(
    [102] => 2
    [104] => 1.5
)

In diesem Beispiel sind die Preise für Produkt -IDs 102 und 104 unterschiedlich, sodass sie zurückgegeben werden.

Zusammenfassen

In diesem Artikel wird beschrieben, wie Sie die Funktionen array_map () und array_diff_uassoc () in PHP verwenden. Wir verwenden zuerst array_map () , um Elemente im Array umzuwandeln, und vergleichen dann Elemente mit verschiedenen Schlüsselnamen und entsprechenden Werten in zwei Arrays über Array_Diff_Uassoc () . Auf diese Weise können wir Arrays flexibel verarbeiten und mit unterschiedlichen Anforderungen vergleichen.


Grenzen zwischen Schwanz und Artikelinhalt teilen