小编典典

具有数组结构的字符串到数组。

algorithm

我有字符串:

Main.Sub.SubOfSub

某种数据可能是字符串:

SuperData

我如何将其全部转换为上述数组?

Array
(
[Main] => Array
    (
        [Sub] => Array
            (
                [SubOfSub] => SuperData
            )

    )

谢谢帮忙,PK


阅读 201

收藏
2020-07-28

共1个答案

小编典典

给定值

$key = "Main.Sub.SubOfSub";
$target = array();
$value = "SuperData";

这是我需要执行的一些代码,¹

$path = explode('.', $key);
$root = &$target;

while(count($path) > 1) {
    $branch = array_shift($path);
    if (!isset($root[$branch])) {
        $root[$branch] = array();
    }

    $root = &$root[$branch];
}

$root[$path[0]] = $value;

看到它在行动

¹实际上,它的作用还不止于此:它可以微不足道地封装在一个函数中,并且可以在所有三个输入值上进行配置(您可以传入具有现有值的数组,并根据需要对其进行扩展)。

2020-07-28