在PHP中执行json_encode多维数组时,我只是通过命名其中一个数组来注意不同的输出,而不是命名它们.例如:
$arrytest = array(array('a'=>1, 'b'=>2),array('c'=>3),array('d'=>4));
json_encode($arrytest)
Run Code Online (Sandbox Code Playgroud)
给出一个包含多个json对象的数组
[{"a":1,"b":2},{"c":3},{"d":4}];
Run Code Online (Sandbox Code Playgroud)
而只是为中间数组指定一个名称
$arrytest = array(array('a'=>1, 'b'=>2),"secondarray"=>array('c'=>3),array('d'=>4));
json_encode($arrytest)
Run Code Online (Sandbox Code Playgroud)
创建一个内部有多个json对象的json对象
{"0":{"a":1,"b":2},"secondarray":{"c":3},"1":{"d":4}};
Run Code Online (Sandbox Code Playgroud)
为什么第一个选项不会返回与第二个execpt相同的结果,而"1"代替"secondarray"
我一直在寻找解决方案,但没有取得真正的成功.我有一个多维的父母和孩子阵列,对深度没有限制.这是从数据库生成的,但问题是项目ID成为关键,使用我的方式将平面数组排列成多维数组,如下所示:
Array(
[28] => Array
(
[id] => 28
[color] => #ff24e5
[name] => Personal
[parent_id] =>
[children] => Array
(
[23] => Array
(
[id] => 23
[color] => #41c3a3
[name] => Shopping
[parent_id] => 28
[children] => Array
(
[22] => Array
(
[id] => 22
[color] => #8be32b
[name] => Deals
[parent_id] => 23
[children] => Array
(
)
)
)
)
[150] => Array
(
[id] => 150
[color] => #e9a3f0
[name] => Orders
[parent_id] => …Run Code Online (Sandbox Code Playgroud)