> 백엔드 개발 > PHP 튜토리얼 > 读取树状数据的方法解决办法

读取树状数据的方法解决办法

WBOY
풀어 주다: 2016-06-13 12:03:23
원래의
947명이 탐색했습니다.

读取树状数据的方法
读取树状数据的方法
一般在读取用“邻接列表算法”组织的数据时,需要使用递归逐层读取
或者读取数据到数组,然后用递归或非递归的方法再行处理
这里介绍一种边读边生成“树状”数组的方法,希望对你有用

mysql_connect();<br /><br />//测试数据<br />$sql =<<< SQL<br />select * from (<br />  select '1' as id, '0' as pid, 'Food' as title<br />  union all select '2', '1', 'Fruit'<br />  union all select '3', '2', 'Red'<br />  union all select '4', '3', 'Cherry'<br />  union all select '5', '2', 'Yellow'<br />  union all select '6', '5', 'Banana'<br />  union all select '7', '1', 'Meat'<br />  union all select '8', '7', 'Beef'<br />  union all select '9', '7', 'Pork'<br />  ) t<br />  order by pid, id<br />SQL;<br /><br />$rs = mysql_query($sql);<br /><br />$res = array(); //结果数组<br />$ind = array(); //索引数组<br />while($row = mysql_fetch_assoc($rs)) {<br />  list($id, $pid) = array_values($row); <br />  $ind[$id] = $row;<br />  if(isset($ind[$pid])) $ind[$pid]['child'][$id] =& $ind[$id]; //构造索引<br />  if($pid == 0) $res[$id] =& $ind[$id]; //转存根节点组<br />}<br /><br />echo '<xmp>' . print_r($res, 1);<br />
로그인 후 복사
Array
(
    [1] => Array
        (
            [id] => 1
            [pid] => 0
            [title] => Food
            [child] => Array
                (
                    [2] => Array
                        (
                            [id] => 2
                            [pid] => 1
                            [title] => Fruit
                            [child] => Array
                                (
                                    [3] => Array
                                        (
                                            [id] => 3
                                            [pid] => 2
                                            [title] => Red
                                            [child] => Array
                                                (
                                                    [4] => Array
                                                        (

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿