Ich habe zwei Arrays:
$array1 = array('a' => 1, 'b' => 2, 'c' => 3); $array2 = array('d' => 4, 'e' => 5, 'f' => 6, 'a' => 'new value', '123' => 456);
Ich möchte sie zusammenführen und Schlüssel und Reihenfolge beibehalten, anstatt sie neu zu indizieren! !
Wie ist es so geworden?
Array ( [a] => new value [b] => 2 [c] => 3 [d] => 4 [e] => 5 [f] => 6 [123] => 456 )
Ich habe array_merge() ausprobiert, aber die Schlüssel bleiben nicht erhalten:
print_r(array_merge($array1, $array2)); Array ( [a] => 'new value' [b] => 2 [c] => 3 [d] => 4 [e] => 5 [f] => 6 [0] => 456 )
Ich habe versucht, den Union-Operator zu verwenden, aber er überschreibt das Element nicht:
print_r($array1 + $array2); Array ( [a] => 1 <-- not overwriting [b] => 2 [c] => 3 [d] => 4 [e] => 5 [f] => 6 [123] => 456 )
Ich habe versucht, die Plätze zu tauschen, aber es war in der falschen Reihenfolge, nicht das, was ich brauchte:
print_r($array2 + $array1); Array ( [d] => 4 [e] => 5 [f] => 6 [a] => new value [123] => 456 [b] => 2 [c] => 3 )
Ich möchte keine Schleife verwenden. Gibt es eine Möglichkeit, eine hohe Leistung zu erzielen?
假设我们有 3 个数组,如下所示。
现在,如果您想合并所有这些数组,并希望最终的数组包含键 0 in 0 和 1 in 1 键下的所有数组数据,依此类推。
然后你需要使用array_replace_recursive PHP函数,如下。
结果如下。
希望上述解决方案能够最适合您的要求!!
您正在寻找
array_replace()
:自 PHP 5.3 起可用。
更新
您还可以使用联合数组运算符;它适用于旧版本,实际上也可能更快: