ホームページ >バックエンド開発 >PHPチュートリアル >ツリーデータを読み取る手順

ツリーデータを読み取る手順

WBOY
WBOYオリジナル
2016-06-13 12:54:031195ブラウズ

ツリーデータを読み取るメソッド
ツリーデータを読み取るメソッド
一般に、「隣接リスト アルゴリズム」によって整理されたデータを読み取る場合は、再帰を使用してレイヤーごとに読み取る必要があります
または、データを配列に読み取り、再帰的または非再帰的メソッドを使用して処理します
ここでは、「ツリーのような」配列を生成する方法を紹介します。お役に立てば幸いです

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 />
配列
(
[1] => 配列
(
[id] => 1
[Pid] = & gt;
[タイトル] =&gt; [子] = & gt; 配列
(
                                                                                                                                                                                                                                                                                       ​  (
以来 [pid] => 1
[タイトル] => フルーツ
[子] => 配列
(
[3] => 配列
                                                            

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。