正如标题所暗示的那样,我正在尝试创建一个解析器并尝试找到将点名称空间中的某些内容转换为多维数组的最佳解决方案,以便
s1.t1.column.1 = size:33%
Run Code Online (Sandbox Code Playgroud)
会是一样的
$source['s1']['t1']['column']['1'] = 'size:33%';
Run Code Online (Sandbox Code Playgroud) 我正在从PHP数组创建JSON编码数据,这些数据可以是两个或三个级别,看起来像这样:
[grandParent] => Array (
[parent] => Array (
[child] => myValue
)
)
Run Code Online (Sandbox Code Playgroud)
我所拥有的方法,只是在代码中手动创建嵌套数组,需要我通过键入一些可怕的嵌套数组来使用我的'setOption'函数(稍后处理编码),但是:
$option = setOption("grandParent",array("parent"=>array("child"=>"myValue")));
Run Code Online (Sandbox Code Playgroud)
我希望能够通过在这个实例中使用类似的javascript符号来获得相同的结果,因为我将在许多页面中设置许多选项,而上面只是不太可读,特别是当嵌套数组包含多个时键 - 虽然能够做到这一点会更有意义:
$option = setOption("grandParent.parent.child","myValue");
Run Code Online (Sandbox Code Playgroud)
任何人都可以通过在'.'上分割字符串来建议一种能够创建多维数组的方法.这样我可以将json_encode()转换为嵌套对象吗?
(setOption函数的目的是将所有选项一起收集到一个大的嵌套PHP数组中,然后再将它们全部编码,以便解决方案的去处)
编辑:我意识到我可以在代码中执行此操作:
$options['grandparent']['parent']['child'] = "myValue1";
$options['grandparent']['parent']['child2'] = "myValue2";
$options['grandparent']['parent']['child3'] = "myValue3";
Run Code Online (Sandbox Code Playgroud)
这可能更简单; 但是一个建议仍然会摇摆(因为我使用它作为更广泛的物体的一部分,所以它的$obj->setOption(key,value);