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

问题描述

给定值

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

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

解决方法

我有字符串:

Main.Sub.SubOfSub

某种数据可能是字符串:

SuperData

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

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

    )

谢谢帮忙,PK

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...