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

如何在 PHP 中将点分隔字符串转换为多维数组?

Patricia Arquette
Patricia Arquette原创
2024-11-28 11:58:10661浏览

How to Convert Dot-Delimited Strings to Multidimensional Arrays in PHP?

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

将点分隔的命名空间字符串转换为多维数组可以是一个有价值的解析工具和重组数据。要实现此目的,请考虑以下方法:

最佳解决方案:

最佳解决方案涉及使用递归函数来遍历点分隔字符串并创建相应的数组结构。代码如下:

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

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

    $arr = $value;
}

工作原理:

  1. explode($separator, $path):这会将点分隔的字符串拆分为键数组。
  2. foreach 循环迭代遍历键,使用 &$arr 引用访问相应的数组元素。
  3. 赋值 $arr = $value 将提供的值分配给最终数组元素。

示例:

使用代码:

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

将会得到结果于:

$source['s1']['t1']['column']['1'] = 'size:33%';

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

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