PHP数组转换与合并
我有一个数组:PHP数组转换与合并,php,arrays,Php,Arrays,我有一个数组: 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) 'Ite
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)
...
我还希望能够将此结果与另一个“转换”数组“合并”。
我现在花了两个多小时试图自己找到一个解决方案,但现在我的大脑崩溃了-
提前谢谢大家的帮助 如果向后循环数组,则可以通过使新数组=上一项是什么来构建数组 然后使用array\u merge\u 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 (
),
),
),
)
你试过什么?发你的密码。实际上,我什么也没试过。我只是无法想象它到底是如何工作的。那么,你需要阅读PHP中的数组并首先尝试一些东西。有很多例子。我们是来帮忙的,但你要做这项工作。如果你想成为任何语言的程序员,你都需要知道如何操作数组。