php无限分类递归及其排序详解
浏览量:348
what:
要满足下面的条件
1、记录条件值,记录的条件值必须保证不会再下一次调用时丢失。函数中static修饰的变量仅仅在第一次初始化,并保留变量值。
2、条件检查。限制了函数对自身的调用次数,可以防止无限调用导致程序奔溃。
why:
函数a内部调用另外的函数b,如果b函数没有完成,那么a函数就会一直等待下去,直到b函数完成,才会回到a函数继续执行。递归的过程中利用了这个特性,正是这个能帮助我们对无限分类进行排序
how:
function recursion($result,$parentid=0,$format="--"){
static $list=array();
foreach ($result as $k => $v){
if($v[parentid]==$parentid){
if($parentid!=0){
$v[title]=$format.$v[title];
}
$list[]=$v;
recursion($result,$v[id]," ".$format);
}
}
return $list;
}
$list=recursion($result,0);


感谢支持与鼓励~