我有字符串:
Main.Sub.SubOfSub
某种数据,可能是一个字符串:
SuperData
我如何才能将它全部转换为上面的数组?
Array
(
[Main] => Array
(
[Sub] => Array
(
[SubOfSub] => SuperData
)
)
)
感谢帮助,
PK
鉴于价值观
$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;
See it in action.
¹实际上它稍微多于它:它可以简单地封装在一个函数中,并且可以在所有三个输入值上进行配置(您可以传入一个包含现有值的数组,并根据需要展开它).