将数组的PHP Puttin值转换为多维数组

时间:2016-03-22 13:23:20

标签: php arrays multidimensional-array

您好我想将单个数组的值放入多维数组中,每个值都在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'];
}

数组的值是树结构,这就是为什么将它们放在多维数组中会很方便

提前致谢。

2 个答案:

答案 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();
    }