【发布时间】:2011-11-29 13:08:30
【问题描述】:
我有点迷茫,或者头脑没有按应有的方式工作。我阅读了其他问题,但可以让我的工作。
我得到了这个数组:
Array
(
[89] => Array
(
[0] => 16
[1] => 2
)
)
我得到了这个:
Array
(
[84] => Array
(
[0] => 2
)
[83] => Array
(
[0] => 2
)
[87] => Array
(
[0] => 2
[1] => 3
)
[88] => Array
(
[0] => 2
)
[89] => Array
(
[0] => 2
)
[90] => Array
(
[0] => 2
)
)
我应该得到所有结果,但在键 89 上我应该从第一个数组中获取值。
Array
(
[84] => Array
(
[0] => 2
)
[83] => Array
(
[0] => 2
)
[87] => Array
(
[0] => 2
[1] => 3
)
[88] => Array
(
[0] => 2
)
[89] => Array
(
[0] => 16
[1] => 2
)
[90] => Array
(
[0] => 2
)
)
数组合并不起作用:(。 同样在我得到结果后,如果第一个数组是它的:
Array
(
[89] => Array
(
[1] => 2
)
)
结果数组应该更新为一条记录。
我确定它对您来说是 1 分钟的代码,但数组对我来说一直很痛苦。
谢谢
更新:如果我使用 array_merge_recursive 它不会保留我的密钥:
print_r(array_merge_recursive($array1,$array2));
Array
(
[0] => Array
(
[0] => 16
[1] => 2
)
[1] => Array
(
[0] => 2
)
[2] => Array
(
[0] => 2
)
[3] => Array
(
[0] => 2
[1] => 3
)
[4] => Array
(
[0] => 2
)
[5] => Array
(
[0] => 2
)
[6] => Array
(
[0] => 2
)
)
【问题讨论】:
-
您需要发布用于合并的 PHP 代码。
-
仅仅递归的数组不会保留键,因为它们是数字的......尝试在它们后面附加一个字符串前缀,它应该可以工作......这就是男人所说的:
If the input arrays have the same string keys, then the values for these keys are merged together into an array, and this is done recursively, so that if one of the values is an array itself, the function will merge it with a corresponding entry in another array too. If, however, the arrays have the same numeric key, the later value will not overwrite the original value, but will be appended.跨度>
标签: php arrays multidimensional-array