这是PHP中的遗传评论系统,使用数组$datas
进行递归函数,
<?php
$datas = array(
array('id' => 1, 'parent' => 0, 'name' => 'Page 1'),
array('id' => 2, 'parent' => 1, 'name' => 'Page 1.1'),
array('id' => 3, 'parent' => 2, 'name' => 'Page 1.1.1'),
array('id' => 4, 'parent' => 3, 'name' => 'Page 1.1.1.1'),
array('id' => 5, 'parent' => 3, 'name' => 'Page 1.1.1.2'),
array('id' => 6, 'parent' => 1, 'name' => 'Page 1.2'),
array('id' => 7, 'parent' => 6, 'name' => 'Page 1.2.1'),
array('id' => 8, 'parent' => 0, 'name' => 'Page 2'),
array('id' => 9, 'parent' => 0, 'name' => 'Page 3'),
array('id' => 10, 'parent' => 9, 'name' => 'Page 3.1'),
array('id' => 11, 'parent' => 9, 'name' => 'Page 3.2'),
array('id' => 12, 'parent' => 11, 'name' => 'Page 3.2.1'),
array('id' => 13, 'parent' => 5, 'name' => 'Page 1.1.1.2.1'),
);
function generatePageTree($datas, $parent = 0, $limit=0) {
if($limit > 1000) return '';
$tree = '<ul>';
for($i=0, $ni=count($datas); $i < $ni; $i++) {
if($datas[$i]['parent'] == $parent) {
$tree .= '<li>';
$tree .= $datas[$i]['name'];
$tree .= generatePageTree($datas, $datas[$i]['id'], $limit++);
$tree .= '</li>';
}
}
$tree .= '</ul>';
return $tree;
}
echo(generatePageTree($datas));
?>
这就是我从数据库中获取与$datas
完全相同的二维数组的方法。
$datas = mysql_query("SELECT * FROM hdata ORDER BY id ASC");
while($line=mysql_fetch_array($data)) {
$results[]=array('id'=>$line['id'],'parent'=>$line['parent'],'name'=>$line['name']);
var_dump($results);
}
它不起作用。
答案 0 :(得分:1)
我通过一点改变解决了这个问题,
$data = mysql_query("SELECT * FROM hdata ORDER BY id ASC");
while($line=mysql_fetch_array($data)) {
$results[]=array('id'=>$line['id'],'parent'=>$line['parent'],'name'=>$line['name']);
}
var_dump($results);