如何在 PHP 中通过点语法创建多维数组
在 PHP 中,转换点语法(如“this.that.other”) )转换为多维数组对于组织数据来说可能是一项有用的任务。以下是完成此转换的方法:
使用递归函数:
以下函数 allocateArrayByPath() 可以递归地导航点语法并创建多维数组:
function assignArrayByPath(&$arr, $path, $value, $separator='.') { $keys = explode($separator, $path); foreach ($keys as $key) { $arr = &$arr[$key]; } $arr = $value; }
怎么样工作原理:
该函数有四个参数:
示例:
将点语法“s1.t1.column.1”转换为多维数组,使用以下代码:
$source = []; assignArrayByPath($source, 's1.t1.column.1', 'size:33%'); echo $source['s1']['t1']['column']['1']; // Outputs: 'size:33%'
这种方法提供了一种灵活的递归方法,用于将复杂的点语法转换为 PHP 中的多维数组,确保即使不存在的键也会自动创建。它对于将嵌套数据结构解析为结构化数组格式特别有用。
以上是如何在 PHP 中将点语法字符串递归转换为多维数组?的详细内容。更多信息请关注PHP中文网其他相关文章!