0

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

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

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

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

项目的数量是可变的。

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

4

2 回答 2

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);
于 2013-03-30T14:11:12.763 回答
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);

观看现场演示

于 2013-03-30T14:11:41.877 回答