您好我想将单个数组的值放入多维数组中,每个值都在n + 1上 这是我的数组$结构
Array
(
[0] => S
[1] => S.1
[2] => S-VLA-S
[3] => SB
[4] => SB50
)
我想要输出的是
Array
(
[S] => Array(
[S.1] => Array (
[S-VLA-S] => Array (
[SB] => Array (
[SB50] => Array(
'more_attributes' => true
)
)
)
)
)
)
这是我到目前为止所尝试的
$structures = explode("\\", $row['structuurCode']);
foreach($structures as $index => $structure) {
$result[$structure][$structure[$index+1]] = $row['structuurCode'];
}
数组的值是树结构,这就是为什么将它们放在多维数组中会很方便
提前致谢。
答案 0 :(得分:6)
一旦你开始把它翻出来并且"包裹"它变得非常微不足道。将内部数组转换为连续的外部数组:
$result = array_reduce(array_reverse($structures), function ($result, $key) {
return [$key => $result];
}, ['more_attributes' => true]);
显然,如果需要在同一结果数组上设置多个路径,则需要更复杂的解决方案,但这是单个路径的最简单解决方案。
答案 1 :(得分:1)
略有不同的方法:
$var = array('a','an','asd','asdf');
$var2 = array_reverse($var);
$result = array('more_attributes' => true);
$temp = array();
foreach ($var2 as $val) {
$temp[$val] = $result;
$result = $temp;
$temp = array();
}