2015-07-10 70 views
0

我有一个嵌套集模型数组https://en.wikipedia.org/wiki/Nested_set_model,我需要将数组转换为具有无限级别的json父 - 孩子。转换嵌套集数组使用PHP

阵列例如:

array(6) { 
    [0]=> 
    array(8) { 
    ["title"]=> 
    string(5) "cat 2" 
    ["type"]=> 
    string(3) "url" 
    ["class_name"]=> 
    string(0) "" 
    ["content"]=> 
    string(6) "value2" 
    ["id"]=> 
    string(3) "128" 
    ["lft"]=> 
    string(1) "1" 
    ["rgt"]=> 
    string(1) "4" 
    ["depth"]=> 
    string(1) "0" 
    } 
    [1]=> 
    array(8) { 
    ["title"]=> 
    string(5) "sub 1" 
    ["type"]=> 
    string(3) "url" 
    ["class_name"]=> 
    string(0) "" 
    ["content"]=> 
    string(6) "value1" 
    ["id"]=> 
    string(3) "129" 
    ["lft"]=> 
    string(1) "2" 
    ["rgt"]=> 
    string(1) "3" 
    ["depth"]=> 
    string(1) "1" 
    } 
    [2]=> 
    array(8) { 
    ["title"]=> 
    string(5) "cat 1" 
    ["type"]=> 
    string(3) "url" 
    ["class_name"]=> 
    string(0) "" 
    ["content"]=> 
    string(6) "value1" 
    ["id"]=> 
    string(3) "130" 
    ["lft"]=> 
    string(1) "5" 
    ["rgt"]=> 
    string(2) "10" 
    ["depth"]=> 
    string(1) "0" 
    } 
    [3]=> 
    array(8) { 
    ["title"]=> 
    string(5) "sub 2" 
    ["type"]=> 
    string(3) "url" 
    ["class_name"]=> 
    string(0) "" 
    ["content"]=> 
    string(6) "value2" 
    ["id"]=> 
    string(3) "131" 
    ["lft"]=> 
    string(1) "6" 
    ["rgt"]=> 
    string(1) "9" 
    ["depth"]=> 
    string(1) "1" 
    } 
    [4]=> 
    array(8) { 
    ["title"]=> 
    string(5) "sub 3" 
    ["type"]=> 
    string(3) "url" 
    ["class_name"]=> 
    string(0) "" 
    ["content"]=> 
    string(6) "value3" 
    ["id"]=> 
    string(3) "132" 
    ["lft"]=> 
    string(1) "7" 
    ["rgt"]=> 
    string(1) "8" 
    ["depth"]=> 
    string(1) "2" 
    } 
    [5]=> 
    array(8) { 
    ["title"]=> 
    string(4) "item" 
    ["type"]=> 
    string(3) "url" 
    ["class_name"]=> 
    string(0) "" 
    ["content"]=> 
    string(6) "value1" 
    ["id"]=> 
    string(3) "133" 
    ["lft"]=> 
    string(2) "11" 
    ["rgt"]=> 
    string(2) "12" 
    ["depth"]=> 
    string(1) "0" 
    } 
} 

JSON例如:

[{"name":"Cat 1","value":"value1","children":[{"name":"sub 2", "value":"value2","children":[{"name":"sub 3", "value":"value 3"}]}]}, {"name":"Cat 2","value":"value 2","children":[{"name":"sub 1", "value":"value1"}]},{"name":"item","value":"value1"}] 

有人可以帮我创建一个函数来完成转换?

+0

答案你想要的代码? –

+0

我看到深度,但不明白亲子关系。在哪里? – splash58

回答

0
+0

但json_encode不转换层次数据,只有数组为json,我想要将嵌套集转换为父 - 子,如示例 –

+0

但此数组不映射到您提供的JSON示例。编写一个将数组转换为你想要的结构(对象数组)的函数,然后json_encode这个结构。 –

+0

是的,映射到json,带有嵌套集! –