首页 >后端开发 >php教程 >如何在 PHP 中高效地将点语法字符串转换为多维数组?

如何在 PHP 中高效地将点语法字符串转换为多维数组?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-12-01 16:01:11423浏览

How to Efficiently Convert Dot Syntax Strings to Multidimensional Arrays in PHP?

在 PHP 中将点语法字符串转换为多维数组

问题:

点语法字符串如何转换,例如 " this.that.other”,可以有效地转换为多维数组PHP?

答案:

一个高效的解决方案是利用如下的递归函数:

function assignArrayByPath(&$arr, $path, $value, $separator='.') {
    $keys = explode($separator, $path);

    foreach ($keys as $key) {
        $arr = &$arr[$key];
    }

    $arr = $value;
}

这个函数迭代地遍历数组,使用“.”作为分隔符,一路创建任何缺失的键,直到达到所需的属性并设置其值。

例如,使用以下示例字符串:“s1.t1.column.1 = size:33 %”,该函数将生成一个相当于:

$source = [];
assignArrayByPath($source, 's1.t1.column.1', 'size:33%');

print_r($source); // Outputs: ['s1' => ['t1' => ['column' => ['1' => 'size:33%']]]]
的数组结构

以上是如何在 PHP 中高效地将点语法字符串转换为多维数组?的详细内容。更多信息请关注PHP中文网其他相关文章!

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