21,886
社区成员
发帖
与我相关
我的任务
分享
$ar = array ( // 按 lft 升序获得的数组
array ( 'id' => '1', 'name' => 'Food', 'lft' => '1', 'rgt' => '18', 'nlevel' => '0', ),
array ( 'id' => '2', 'name' => 'Fruit', 'lft' => '2', 'rgt' => '11', 'nlevel' => '0', ),
array ( 'id' => '3', 'name' => 'Red', 'lft' => '3', 'rgt' => '6', 'nlevel' => '0', ),
array ( 'id' => '4', 'name' => 'Cherry', 'lft' => '4', 'rgt' => '5', 'nlevel' => '0', ),
array ( 'id' => '5', 'name' => 'Yellow', 'lft' => '7', 'rgt' => '10', 'nlevel' => '0', ),
array ( 'id' => '6', 'name' => 'Banana', 'lft' => '8', 'rgt' => '9', 'nlevel' => '0', ),
array ( 'id' => '7', 'name' => 'Meat', 'lft' => '12', 'rgt' => '17', 'nlevel' => '0', ),
array ( 'id' => '8', 'name' => 'Beef', 'lft' => '13', 'rgt' => '14', 'nlevel' => '0', ),
array ( 'id' => '9', 'name' => 'Pork', 'lft' => '15', 'rgt' => '16', 'nlevel' => '0', ),
);
function show_callback($val) {
global $st;
while(isset($st[0]) && $st[0] < $val['rgt']) {
array_shift($st);
}
array_unshift($st, $val['rgt']);
$val['child'] = ($val['rgt'] - $val['lft'] - 1) / 2;
$val['space'] = str_repeat(' ', count($st) - 1);
return $val;
}
$st = array();
$ar = array_map('show_callback', $ar); //忽略nlevel的作用,自行计算缩进
foreach($ar as $v) {
echo $v['space'] . $v['name'] . '<br>';
}
Food
Fruit
Red
Cherry
Yellow
Banana
Meat
Beef
Pork
<?php
$link=mysql_connect('localhost','root','123456') or die('不能连接'.mysql_error());
$sql=mysql_query('use db_review',$link);
$result=mysql_query("select * from wk_subcat order by lft",$link);
while($ar=mysql_fetch_array($result))
{
for($i=0;$i<$ar['nlevel'];$i++) echo ' ';
echo $ar['name'].'<br />';
}
?>