Heim >Backend-Entwicklung >PHP-Tutorial >Wie füge ich assoziative Arrays mit Standardwerten für fehlende Spalten zusammen?
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');
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', ), )
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>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 ) )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>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!