使用php array_merge_recursive时错误的数字键

时间:2014-12-03 13:08:15

标签: php arrays recursion merge

我试图使用array_replace_recursive递归合并两个数组。 这是代码:

$col = array();
$new = array_merge_recursive($col, array('table1' => array(1 => true)));
$new = array_merge_recursive($new, array('table1' => array(0 => false)));

$ new数组的转储是

array(1) { ["table1"]=> array(2) { [1]=> bool(true) [2]=> bool(false) } }

我需要保留“table1”数组的数字键。预期结果应为

array(1) { ["table1"]=> array(2) { [0]=> bool(false) [1]=> bool(true) } }

有人有解决方案吗?

2 个答案:

答案 0 :(得分:0)

您可以切换参数的顺序

$new = array_merge_recursive(array(), array('table1' => array(0 => false)));
$new = array_merge_recursive($new, array('table1' => array(1 => true)));

您遇到的问题是您已经创建了一个密钥,因此后续调用将附加到数组的第一个元素。

答案 1 :(得分:0)

使用array_replace_recursive代替array_merge_recursive