„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > 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?

Veröffentlicht am 02.11.2024
Durchsuche:492

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 eine 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.

Freigabeerklärung Dieser Artikel wird unter folgender Adresse abgedruckt: 1729431856 Bei Verstößen wenden Sie sich bitte an [email protected], um ihn zu löschen
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3