Wie füge ich assoziative Arrays mit Standardwerten für fehlende Spalten zusammen?

Susan Sarandon
Freigeben: 2024-10-20 21:38:30
Original
986 Leute haben es durchsucht

How to Merge Associative Arrays with Default Values for Missing Columns?

Assoziative Arrays mit Standardwerten für fehlende Spalten zusammenführen

Um mehrere assoziative Arrays zusammenzuführen und fehlende Spalten mit einem Standardwert auszufüllen, können Sie dies tun Nutzen Sie die Leistungsfähigkeit der Array-Funktionen von PHP.

Das Problem

Berücksichtigen Sie die folgenden Arrays:

$a = array('a' => 'some value', 'b' => 'some value', 'c' => 'some value');
$b = array('a' => 'another value', 'd' => 'another value', 'e' => 'another value', 'f' => 'another value');
$c = array('b' => 'some more value', 'x' => 'some more value', 'y' => 'some more value', 'z' => 'some more value');
Nach dem Login kopieren

Wenn Sie diese Arrays mit var_export zusammenführen, Sie erhalten:

array (
  0 => 
  array (
    'a' => 'some value',
    'b' => 'some value',
    'c' => 'some value',
  ),
  1 => 
  array (
    'a' => 'another value',
    'd' => 'another value',
    'e' => 'another value',
    'f' => 'another value',
  ),
  2 => 
  array (
    'b' => 'some more value',
    'x' => 'some more value',
    'y' => 'some more value',
    'z' => 'some more value',
  ),
)
Nach dem Login kopieren

Die Lösung

Um die Array-Schlüssel zu kombinieren und fehlende Spalten mit einer leeren Zeichenfolge zu füllen, können Sie array_merge:

<code class="php">$keys = array();
foreach(new RecursiveIteratorIterator(new RecursiveArrayIterator($d)) as $key => $val) $keys[$key] = '';
$data = array();
foreach($d as $values) {
    $data[] = array_merge($keys, $values);
}</code>
Nach dem Login kopieren
Dies wird die gewünschte Ausgabe erzeugen:

Array
(
    [0] => Array
        (
            [a] => some value
            [b] => some value
            [c] => some value
            [d] => 
            [e] => 
            [f] => 
            [x] => 
            [y] => 
            [z] => 
        )

    [1] => Array
        (
            [a] => another value
            [b] => 
            [c] => 
            [d] => another value
            [e] => another value
            [f] => another value
            [x] => 
            [y] => 
            [z] => 
        )

    [2] => Array
        (
            [a] => 
            [b] => some more value
            [c] => 
            [d] => 
            [e] => 
            [f] => 
            [x] => some more value
            [y] => some more value
            [z] => some more value
        )
)
Nach dem Login kopieren
Eine andere Möglichkeit besteht darin, Schlüsselpaarwerte mit leeren Werten zu erstellen und diese zusammenzuführen:

<code class="php">$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);</code>
Nach dem Login kopieren
Dies wird ebenfalls produzieren die gleiche gewünschte Ausgabe.

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

Quelle:php
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!