如何合并,而preserving键的多维数组? [英] How to merge multidimensional arrays while preserving keys?
本文介绍了如何合并,而preserving键的多维数组?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
是否有这些阵列的方式
$ ARRAY1 =阵列(
'21 -24'=>阵列(
'1'=>阵列(...)
)
);$数组2 =阵列(
'21 -24'=>阵列(
'7'=>阵列(...),
)
);$ ARRAY3 =阵列(
'25及以上'=>阵列(
'1'=>阵列(...)
)
);$ array4 =阵列(
'25及以上'=>阵列(
'7'=>阵列(...)
)
);
要被合并而导致到下面的阵列?
阵列(
'21 -24'=>阵列(
'1'=>阵列(...),
'7'=>阵列(...)
)
'25及以上'=>阵列(
'1'=>阵列(...),
'7'=>阵列(...)
)
);
注意
- 我没有在阵列结构控制,因此需要改变结构的任何解决方案是不是我要找
- 我主要兴趣在preserving第2级的密钥,但一个更强大的解决方案是一个可以处理所有的水平。
我尝试使用 array_merge_recursive()这样
$ X = array_merge_recursive($数组1,$数组2);
$ X = array_merge_recursive($ X,$ ARRAY3);
$ X = array_merge_recursive($ X,$ array4);
但它导致了
阵列(
'21 -24'=>阵列(
'1'=>阵列(...),
'2'= GT;阵列(...)
)
'25及以上'=>阵列(
'1'=>阵列(...),
'2'= GT;阵列(...)
)
);
解决方案
你有没有考虑 array_replace_recursive()
?
的print_r(array_replace_recursive($数组1,$数组2,$ ARRAY3,$ array4));
Is there a way for these arrays
$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("...")
)
);
to be merged which result into the array below?
array(
'21-24' => array(
'1' => array("..."),
'7' => array("...")
),
'25 and over' => array(
'1' => array("..."),
'7' => array("...")
)
);
NOTE:
- I don't have control over the array structure so any solution that requires changing the structure is not what I am looking for
- I am mainly interested in preserving the keys of the first 2 levels but a more robust solution is one that can handle all level.
I tried using array_merge_recursive() like this
$x = array_merge_recursive($array1, $array2);
$x = array_merge_recursive($x, $array3);
$x = array_merge_recursive($x, $array4);
but it resulted in
array(
'21-24' => array(
'1' => array("..."),
'2' => array("...")
),
'25 and over' => array(
'1' => array("..."),
'2' => array("...")
)
);
解决方案
Have you considered array_replace_recursive()
?
print_r(array_replace_recursive($array1, $array2, $array3, $array4));
这篇关于如何合并,而preserving键的多维数组?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文