MySQL层次结构数据到PHP中的JSON字符串

时间:2009-10-11 06:47:21

标签: php json

我在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函数来帮助吗?

2 个答案:

答案 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]);