一尘不染

在PHP中将点语法(例如“ this.that.other”)转换为多维数组

php

就像标题所暗示的那样,我正在尝试创建一个解析器,并试图找到将点名称空间中的某些内容转换为多维数组的最佳解决方案,以便

s1.t1.column.1 = size:33%

将与

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

阅读 292

收藏
2020-05-29

共1个答案

一尘不染

试试这个号码…

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

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

    $arr = $value;
}

它将循环遍历键(.默认情况下以空格分隔)以获取最终属性,然后对值进行赋值。

如果某些键不存在,则会创建它们。

2020-05-29