我有一个数组:
array (size=3)
0 => string 'Level' (length=5)
1 => string 'Sub' (length=3)
2 => string 'Item' (length=4)
现在我想将此数组转换为:
array (size=1)
'Level' =>
array (size=1)
'Sub' =>
array (size=1)
'Item' =>
array (size=0)
...
然后我想将此“转换后的”数组与此数组“合并”:
array (size=1)
'Level' =>
array (size=1)
'Sub' =>
array (size=1)
'AnotherItem' =>
array (size=0)
...
结果应如下所示:
array (size=1)
'Level' =>
array (size=1)
'Sub' =>
array (size=2)
'Item' =>
array (size=0)
...
'AnotherItem' =>
array (size=0)
...
我还希望能够将这个结果与另一个“转换后的”数组“合并”。 我现在尝试了两个多小时,独自寻找解决方案,但现在我的大脑崩溃了-.-
谢谢所有的帮助!
答案 0 :(得分:0)
如果将数组向后循环,则可以通过使新数组=上一项是什么来构建数组。
然后使用array_merge_recursive合并两个数组。
$arr = ['level', 'sub', 'item'];
$arr = array_reverse($arr);
$new =[];
// Rebuild the array
foreach($arr as $key => $item){
if($key ==0){
$new = [$item => []];
}else{
$new = [$item => $new];
}
}
// Your other array:
$other = array (
'level' =>
array (
'sub' =>
array (
'AnotherItem' =>
array (
),
),
),
);
// Merge the two
$new = array_merge_recursive($new, $other);
var_export($new);
输出:
array (
'level' =>
array (
'sub' =>
array (
'item' =>
array (
),
'AnotherItem' =>
array (
),
),
),
)