数组递归
PHP无限分级 将数组递归转化成阶梯型数组 数组中包含数组 使用更方便 查看也很方便,网上找的都不是很好,自己写的才是王道
简单的递归 没有什么特别之处 只是自己写的容易理解一点而已!
代码在下面
$array[0]=array(
'fid'=>'1',
'top'=>'0',
'name'=>'顶级1'
);
$array[1]=array(
'fid'=>'2',
'top'=>'0',
'name'=>'顶级2'
);
$array[2]=array(
'fid'=>'3',
'top'=>'1',
'name'=>'二级1'
);
$array[3]=array(
'fid'=>'4',
'top'=>'3',
'name'=>'三级1'
);
$array[4]=array(
'fid'=>'5',
'top'=>'1',
'name'=>'二级2'
);
$array[5]=array(
'fid'=>'6',
'top'=>'4',
'name'=>'四级1'
);
$son=get_son($array);
print_r($son);
function get_son($arr,$top=0){
$array=array();
foreach ($arr as $key => $value) {
if($value['top']==$top){
$array[$key]=$value;
$array[$key]['son']=get_son($arr,$value['fid']);
}
}
return $array;
}
?>
嵌套数组解析
这里增加了一个 $lev 参数 区分是哪层的 主要用于css/js的使用
全部代码在下面
.a1{
margin-left: 20px;
}
.a2{
margin-left: 40px;
}
.a3{
margin-left: 60px;
}
.a4{
margin-left: 80px;
}
$array[0]=array(
'fid'=>'1',
'top'=>'0',
'name'=>'顶级1'
);
$array[1]=array(
'fid'=>'2',
'top'=>'0',
'name'=>'顶级2'
);
$array[2]=array(
'fid'=>'3',
'top'=>'1',
'name'=>'二级1'
);
$array[3]=array(
'fid'=>'4',
'top'=>'3',
'name'=>'三级1'
);
$array[4]=array(
'fid'=>'5',
'top'=>'1',
'name'=>'二级2'
);
$array[5]=array(
'fid'=>'6',
'top'=>'4',
'name'=>'四级1'
);
function get_son($arr,$top=0,$lev=1){
$array=array();
foreach ($arr as $key => $value) {
if($value['top']==$top){
$array[$key]=$value;
$array[$key]['lev']=$lev;
$array[$key]['son']=get_son($arr,$value['fid'],$lev+1);
}
}
return $array;
}
$son=get_son($array);
fun($son);
function fun($arr){
foreach ($arr as $key => $value) {
echo ''.$value['name'].'
';
if($value['son']){
fun($value['son']);
}
}
}
?>