PHP数组到树数组

时间:2013-03-30 14:06:29

标签: php arrays tree key

我有一个问题我无法解决。我有2个数组和一个字符串。第一个数组包含第二个应该使用的键。第一个是这样的:

Array
(
    [0] => foo
    [1] => bar
    [2] => hello
)

现在我需要一个将其转换为第二个数组的PHP代码:

Array
(
    [foo] => Array
        (
            [bar] => Array
                (
                    [hello] => MyString
                )
        )
)

项目数量可变。

有人可以告诉我该怎么做吗?

2 个答案:

答案 0 :(得分:3)

您应该使用引用来解决此问题:

$a = array (0 => 'foo', 1 => 'bar', 2 => 'hello' );

$b = array();
$ptr = &$b;
foreach ($a as $val) {
    $ptr[$val] = Array();
    $ptr = &$ptr[$val];
}
$ptr = 'MyString';
var_dump($b);

答案 1 :(得分:2)

您只需要:

$path = array(
        0 => 'foo',
        1 => 'bar',
        2 => 'hello'
);

$data = array();
$t = &$data;
foreach ( $path as $key ) {
    $t = &$t[$key];
}
$t = "MyString";
unset($t);

print_r($data);

See Live Demo