Aktueller Standort: Startseite> Neueste Artikel> Array_Fill_Keys + Array_Map: Konstruieren Sie schnell ein assoziatives Array

Array_Fill_Keys + Array_Map: Konstruieren Sie schnell ein assoziatives Array

M66 2025-06-06

In PHP sind Arrays sehr wichtige Datenstrukturen, und assoziative Arrays werden in der täglichen Entwicklung häufig verwendet. Oft müssen wir assoziative Arrays nach bestimmten Regeln schnell konstruieren. Die zwei Funktionen von PHP array_fill_keys () und array_map () können sehr geschickt verwendet werden, um diese Aufgabe effizient zu erledigen.

1. Einführung in Array_Fill_keys ()

Array_Fill_Keys () ist eine sehr praktische PHP -Funktion, die ein assoziatives Array erzeugt, das mit demselben Wert basiert, der auf dem angegebenen Schlüssel basiert. Seine Definition ist wie folgt:

 array array_fill_keys ( array $keys , mixed $value )
  • $ KEYS : Array von Schlüsselnamen.

  • $ Wert : Füllen Sie den entsprechenden Wert jedes Schlüssels ein.

Verwenden Sie beispielsweise Array_Fill_keys () , um ein Array mit mehreren Schlüssel zu erstellen, und füllen Sie denselben Wert ein:

 $keys = ['a', 'b', 'c'];
$value = 0;

$result = array_fill_keys($keys, $value);
print_r($result);

Ausgangsergebnis:

 Array
(
    [a] => 0
    [b] => 0
    [c] => 0
)

2. Einführung in Array_Map ()

array_map () ist eine weitere sehr häufig verwendete PHP -Funktion, die eine Rückruffunktion für jedes Element in einem Array anwendet und ein neues Array zurückgibt. Seine Definition ist wie folgt:

 array array_map ( callable $callback , array $array1 [, array $array2 [, array $... ]] )
  • $ Callback : Die Rückruffunktion, die Operationen in jedem Element im Array ausführt.

  • $ array1 : Geben Sie ein Array ein, es kann mehrere Array -Parameter geben, und die Rückruffunktion wirkt wiederum auf diesen Arrays.

Zum Beispiel können wir jeden Wert eines Arrays verarbeiten:

 $numbers = [1, 2, 3, 4];
$squared = array_map(function($num) {
    return $num * $num;
}, $numbers);

print_r($squared);

Ausgangsergebnis:

 Array
(
    [0] => 1
    [1] => 4
    [2] => 9
    [3] => 16
)

3. Verwenden Sie Array_Fill_keys () und Array_Map () in Kombination

Angenommen, wir haben ein Array mit einer Reihe von Schlüsselnamen und möchten für jeden Schlüssel einen Wert generieren, der aus einem anderen Array stammt, und für diese Werte ist eine gewisse Verarbeitung erforderlich. Durch Kombinieren von Array_Fill_keys () und Array_Map () können wir diese Aufgabe sehr effizient erfüllen.

Angenommen, wir haben eine Reihe mehrerer Produktnamen, wir möchten für jedes Produkt einen Anfangspreis festlegen, und diese Preise müssen nach bestimmten Regeln angepasst werden.

 $keys = ['product1', 'product2', 'product3'];
$prices = [10, 20, 30];

// verwendenarray_fill_keysGenerieren Sie für jeden Artikel einen Anfangspreis
$initialPrices = array_fill_keys($keys, null);

// verwendenarray_mapPreise anpassen
$adjustedPrices = array_map(function($price) {
    return $price * 1.2;  // Zum Beispiel fügen wir hinzu20%Preis
}, $prices);

// 将调整后Preis与商品键关联
$finalPrices = array_combine($keys, $adjustedPrices);

print_r($finalPrices);

Ausgangsergebnis:

 Array
(
    [product1] => 12
    [product2] => 24
    [product3] => 36
)

4. Verwenden Sie Szenarien

Diese kombinierte Methode eignet sich besonders für Szenarien, in denen große Mengen an Daten erforderlich sind, um in Chargen zu arbeiten. Zum Beispiel:

  • Holen Sie sich den Produktnamen aus der Datenbank, generieren Sie den Preis und wenden Sie den Rabatt an.

  • Generieren Sie Konfigurationsarrays und verarbeiten Sie sie gemäß den Einstellungen, die von einem Benutzersatz eingegeben wurden.

  • Kartieren Sie mehrere Datensätze und geben Sie ein assoziatives Array mit demselben Schlüsselnamen zurück.

Die Vorteile dieses Ansatzes sind:

  1. Präzise : Vermeiden Sie doppelte Codelogik.

  2. Flexibel : Array_map () kann Daten durch benutzerdefinierte Rückruffunktionen flexibel anpassen.

  3. Effizienz : Die Kombination von zwei Funktionen kann die Codemenge effektiv reduzieren und die Entwicklungseffizienz verbessern.

5. Dinge zu beachten

  • Alle Werte im von Array_Fill_keys () generierten Array werden auf denselben Wert initialisiert. Wenn wir Werte gemäß verschiedenen Regeln generieren müssen, können wir sie in Kombination mit Array_Map () in Betracht ziehen.

  • Die Funktion array_combine () wird verwendet, um zwei Arrays in ein assoziatives Array zu kombinieren, das verwendet wird, um den angepassten Preis mit dem Produktnamen zu verbinden.

6. Zusammenfassung

Durch Kombination von Array_Fill_keys () und Array_Map () können wir die Konstruktion und Änderung assoziativer Arrays sehr präzise und effizient verarbeiten. Unabhängig davon, ob es sich um die Datenverarbeitung oder die Stapelerzeugung von Arrays bestimmter Strukturen handelt, kann die Kombination dieser beiden Funktionen den Code erheblich vereinfachen.