21,886
社区成员
发帖
与我相关
我的任务
分享
class IndexController extends Controller {
public function index(){
$nav=M('nav');
$arr0=array();
$arr0=$nav->where('level=0')->select();
foreach ($arr0 as $key => $value) {
$arr0[$key]['second']=$nav->where("parent=%d",$value['id'])->select();
foreach ($arr0[$key]['second'] as $key2 => $value2) {
$arr0[$key]['second']['third']=$nav->where("parent=%d",$value2['id'])->select;
}
}
dump($arr0);
exit;
$this->assign("menu",$arr0);
$this->display();
}
public function nav(){
$nav=M('nav');
$arr=$arr0=$nav->where('level=0')->select();
$arr1=$arr1_1=$nav->where('level=1')->select();//二级菜单
$arr2=$nav->where('level=2')->select();
foreach ($arr1 as $key1 => $value1) {
foreach ($arr2 as $key2 => $value2) {
if($value2['parent']==$value1['id']){
$arr1_1[$key1]['next'][]=$value2;
}
}
}
foreach ($arr0 as $key0 => $value0) {
foreach ($arr1 as $key1 => $value1) {
if($value1['parent']==$value0['id']){
$arr[$key0]['next'][]=$arr1_1[$key1];
}
}
}
unset($arr0,$arr1,$arr1_1,$arr2);
$this->assign('nav',$arr);
return $arr;
第二种,一次连接数据库,把三级导航全部读出来,再用数组操作‘
public function columnlist(){
$nav=M('nav')->select();
$arr=$arr1=$arr2=array();
foreach ($nav as $key => $value) {
switch ($value['level']) {
case 0:
$arr[]=$value;
break;
case 1:
$arr1[]=$value;
break;
case 2:
$arr2[]=$value;
break;
}
}
unset($value);
$arr0=$arr;
$arr1_1=$arr1;
foreach ($arr1 as $key1 => $value1) {
foreach ($arr2 as $key2 => $value2) {
if ($value2['parent']==$value1['id']) {
$arr1_1[$key1]['next'][]=$value2;
}
}
}
unset($value1,$value2);
foreach ($arr as $key => $value) {
foreach ($arr1 as $key1 => $value1) {
if ($value1['parent']==$value['id']) {
$arr0[$key]['next'][]=$arr1_1[$key1];
}
}
}
unset($value,$value1);
return $arr0;
}