如何在保存键的同时合并多维数组?
问题描述:
是否有这些阵列如何在保存键的同时合并多维数组?
$array1 = array(
'21-24' => array(
'1' => array("...")
)
);
$array2 = array(
'21-24' => array(
'7' => array("..."),
)
);
$array3 = array(
'25 and over' => array(
'1' => array("...")
)
);
$array4 = array(
'25 and over' => array(
'7' => array("...")
)
);
被合并而导致进入下面的阵列的方法吗?
array(
'21-24' => array(
'1' => array("..."),
'7' => array("...")
),
'25 and over' => array(
'1' => array("..."),
'7' => array("...")
)
);
注意:
- 我没有在阵列结构,这样就需要改变结构没有任何解决办法控制我所期待的
- 我主要兴趣保留前两个级别的密钥,但更强大的解决方案是可以处理所有级别的解决方案。
我试着用array_merge_recursive()这样
$x = array_merge_recursive($array1, $array2);
$x = array_merge_recursive($x, $array3);
$x = array_merge_recursive($x, $array4);
但却造成
array(
'21-24' => array(
'1' => array("..."),
'2' => array("...")
),
'25 and over' => array(
'1' => array("..."),
'2' => array("...")
)
);
答
你有没有考虑array_replace_recursive()
?
print_r(array_replace_recursive($array1, $array2, $array3, $array4));
你只有4个阵列吗? – HamZa
@tessmore它已经在问题解释,我试过但没有按预期工作 – arvinsim
@HamZaDzCyberDeV我正在处理的实际代码各不相同。但不变的是一级和二级键。当然,最好的解决方案根本不应该关心这一点。 – arvinsim