【发布时间】:2011-01-13 20:45:03
【问题描述】:
有没有一种递归合并数组的方法,就像 PHP 的 array_merge_recursive() 函数一样,除了整数键被视为与字符串键相同?
(对于这个过程来说,关键是保持可解析为整数的过程很重要。)
例如:
$a = array(
'a' => array(1)
);
$b = array(
'a' => array(2, 3)
);
var_dump(array_merge_recursive($a, $b));
将合并"a" 键并按预期输出以下内容:
array(1) {
["a"] => array(3) {
[0] => int(1)
[1] => int(2)
[2] => int(3)
}
}
但是,当使用整数作为键时(即使作为字符串):
$a = array(
'123' => array(1)
);
$b = array(
'123' => array(2, 3)
);
var_dump(array_merge_recursive($a, $b));
array_merge_recursive() 将返回:
array(2) {
[0] => array(3) {
[0] => int(1)
}
[1] => array(2) {
[0] => int(2)
[1] => int(3)
}
}
而不是非常想要的:
array(1) {
["123"] => array(3) {
[0] => int(1)
[1] => int(2)
[2] => int(3)
}
}
想法?
【问题讨论】:
标签: php arrays multidimensional-array