首页 >后端开发 >php教程 >如何将点分隔字符串转换为嵌套数组?

如何将点分隔字符串转换为嵌套数组?

DDD
DDD原创
2024-10-31 03:36:01689浏览

How to Convert a Dot-Delimited String to a Nested Array?

将点分隔字符串转换为嵌套数组

给定一个表示嵌套数组结构的字符串,例如“Main.Sub. SubOfSub”,以及相应的值,如“SuperData”,目标是将这些数据转换为实际的嵌套数组。

要实现此转换,这里有一个详细的解决方案:

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

$path = explode('.', $key); // Split the string into an array of keys
$root = &$target; // Reference to the main array

while (count($path) > 1) { // Iterate through the path array
    $branch = array_shift($path); // Get the current branch
    if (!isset($root[$branch])) {
        $root[$branch] = array(); // Create the branch if it doesn't exist
    }
    $root = &$root[$branch]; // Update the reference to the current branch
}

$root[$path[0]] = $value; // Set the value at the end of the path

此代码根据字符串中指定的路径有效地创建一个嵌套数组。变量 $root 作为数组中当前嵌套级别的引用,确保在我们遍历路径时将值分配给正确的分支。

以上是如何将点分隔字符串转换为嵌套数组?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn