Heim  >  Artikel  >  Backend-Entwicklung  >  Wie füge ich assoziative Arrays zusammen, behandle fehlende Schlüssel und fülle sie mit Standardwerten?

Wie füge ich assoziative Arrays zusammen, behandle fehlende Schlüssel und fülle sie mit Standardwerten?

DDD
DDDOriginal
2024-10-20 21:45:29609Durchsuche

How to Merge Associative Arrays, Handle Missing Keys, and Fill with Default Values?

Mehrere assoziative Arrays zusammenführen und fehlende Spalten mit einem Standardwert hinzufügen

Das Kombinieren assoziativer Arrays mit unterschiedlichen Schlüsselsätzen zum Erstellen eines einheitlichen Arrays kann eine Herausforderung sein. In dieser Frage wird eine Methode untersucht, um dies zu erreichen. Die gewünschte Ausgabe ist ein Array, in dem Schlüssel zusammengeführt und fehlende Spalten mit einem Standardwert gefüllt werden.

Um dies zu erreichen, wurde vorgeschlagen, die Funktion array_merge in Verbindung zu verwenden mit einem sorgfältig erstellten Array von Schlüsseln:

$keys = array();
foreach(new RecursiveIteratorIterator(new RecursiveArrayIterator($d)) as $key => $val) {
    $keys[$key] = '';
}

Diese Schleife durchläuft alle Elemente in den Eingabearrays, extrahiert die eindeutigen Schlüssel und weist ihnen leere Werte zu. Das resultierende $keys-Array enthält alle möglichen Schlüssel, die im endgültigen zusammengeführten Array vorhanden sein können.

Als nächstes wird jedes Eingabearray mit dem $keys-Array zusammengeführt:

$data = array();
foreach($d as $values) {
    $data[] = array_merge($keys, $values);
}

Dieser Schritt stellt sicher dass jede Zeile im endgültigen Array alle möglichen Schlüssel hat, wobei alle fehlenden Werte mit einer leeren Zeichenfolge aufgefüllt werden. Das resultierende $data-Array ist das gewünschte zusammengeführte und vervollständigte Array.

Alternativ kann ein Schlüsselpaar-Array erstellt und mit jedem Eingabearray zusammengeführt werden:

$keys = array_keys(call_user_func_array('array_merge', $d));
$key_pair = array_combine($keys, array_fill(0, count($keys), null));
$values = array_map(function($e) use ($key_pair) {
    return array_merge($key_pair, $e);
}, $d);

Diese Methode erstellt im Wesentlichen ein Zuordnung aller möglichen Schlüssel zu Nullwerten. Jedes Eingabearray wird dann mit dem Array $key_pair zusammengeführt, wodurch das gleiche Ergebnis wie beim vorherigen Ansatz erzielt wird.

Das obige ist der detaillierte Inhalt vonWie füge ich assoziative Arrays zusammen, behandle fehlende Schlüssel und fülle sie mit Standardwerten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn