Assoziative Arrays zusammenführen und fehlende Spalten mit Standardwerten vervollständigen
Bedenken Sie den folgenden Code:
<code class="php">$a = ['a' => 'some value', 'b' => 'some value', 'c' => 'some value']; $b = ['a' => 'another value', 'd' => 'another value', 'e' => 'another value', 'f' => 'another value']; $c = ['b' => 'some more value', 'x' => 'some more value', 'y' => 'some more value', 'z' => 'some more value']; $d = [$a, $b, $c];</code>
Wenn Sie Verwenden Sie var_export($d), Sie erhalten die folgende Ausgabe:
<code class="php">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', ), )</code>
Array-Schlüssel mit Standardwerten zusammenführen
Um die Array-Schlüssel zu kombinieren und fehlende Spalten auszufüllen Mit einem Standardwert können Sie array_merge verwenden:
<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); } echo '<pre class="brush:php;toolbar:false">'; print_r($data);</code>
Ergebnis:
<code class="php">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 ) )</code>
Ein anderer Ansatz
Alternativ können Sie Schlüsselpaarwerte erstellen und diese dann zusammenfü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>
Das obige ist der detaillierte Inhalt vonWie kann man assoziative Arrays effektiv zusammenführen und fehlende Spalten in PHP behandeln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!