PHP数组到树数组


PHP array to tree array

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

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

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

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

项目数量是可变的。

谁能告诉我该怎么做?

你应该使用引用来解决这个问题:

$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);

你只需要:

$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);

参见Live Demo