我在MYSQL数据库中有如下数据:
id,parentid,name,count
1,0,top,10
2,1,middle1,5
3,1,middle2,5
4,3,bottom1,3
5,3,bottom2,2
并希望通过PHP输出它作为一个heirrchical JSON字符串,其中'top'有一个'middle'等的集合。
让我的漂移?任何人都有递归的PHP函数来帮助吗?
答案 0 :(得分:2)
如果你的数据是在PHP数组/关联数组中,那么你可以使用PHP 5.2的JSON函数:
http://www.php.net/manual/en/function.json-encode.php
继续在该页面上阅读评论区域,他们几乎没有给出代码而没有自己搞清楚的乐趣。
答案 1 :(得分:0)
您可以使用此处的函数http://tagarga.com/blok/on/061029将邻接列表转换为嵌套数组,然后将json_encode()转换为它。
function adj_tree(&$tree, $item) {
$i = $item['id'];
$p = $item['parentid'];
$tree[$i] = isset($tree[$i]) ? $item + $tree[$i] : $item;
$tree[$p]['_children'][] = &$tree[$i];
}
$tree = array();
$rs = my_query("SELECT * FROM categories");
while($row = my_fetch($rs))
adj_tree($tree, $row);
echo json_encode($tree[0]);