以下是一个名为“readcontent_categories”的mysql表
我想使用上表生成一个无限深度的树。例如,我想看看“英语”下的所有内容。然后它必须显示如下:
english
|--------+Tens
|-------+present
|-------+past
|-------+future
现在我尝试如下:
<?php
include("config.php");
$query = "SELECT * FROM readcontent_categories";
$result = mysql_query($query);
function getChildren($pid){
$r = array();
global $row, $result;
while( $row = mysql_fetch_array($result) ){
if($row['parent_id'] == $pid)$r[$row['id']] = getChildren($row['id']);
}
return $r;
}
$final = getChildren(1);
print_r($final);
?>
我在写这个吗?如何获得上述输出? 我得到的输出并不像预期的那样。我的输出如下:
Array ( [2] => Array ( [3] => Array ( ) ) )
但是如何获得上述输出?任何人都可以帮忙???
答案 0 :(得分:0)
使用此自定义功能: 例如:
$items = array(
array('id' => 42, 'parent_id' => 1),
array('id' => 43, 'parent_id' => 42),
array('id' => 1, 'parent_id' => 0),
);
function buildTree($items) {
$childs = array();
foreach($items as &$item) $childs[$item['parent_id']][] = &$item;
unset($item);
foreach($items as &$item) if (isset($childs[$item['id']]))
$item['childs'] = $childs[$item['id']];
return $childs[0];
}
$tree = buildTree($items);