一、什么是递归函数?
一个函数在它的函数体内调用它自身称为递归调用。 这种函数称为递归函数。
二、几行看懂php递归
function recursion($i){
if($i<1){
exit; // 递归出口
}
echo $i."<br/>";
recursion($i-1);
}
recursion(10); // 浏览器将显示从10显示到1
效果图
![php递归经典案例 php递归经典案例](https://i-blog.csdnimg.cn/blog_migrate/124ba8c6ac7a963d3888ea0780c10544.png)
三、通过递归,列出省市区
$item = array(
array('id'=>1,'pid' => 0, 'name'=>'广东省' ),
array('id'=>2,'pid' => 0, 'name'=>'广西省' ),
array('id'=>3,'pid' => 1, 'name'=>'深圳市' ),
array('id'=>4,'pid' => 3, 'name'=>'宝安区' ),
array('id'=>5,'pid' => 1, 'name'=>'广州市' ),
);
function recursion($array, $pid = 0){
$arr = array();
foreach ($array as $v) {
if ($v['pid'] == $pid) {
$temp = array();
$temp = recursion($array, $v['id']);
//判断是否存在子数组
if($temp)
{
$v['son'] = $temp;
}
$arr[] = $v;
}
}
return $arr;
}
$array = recursion($item);
echo "<pre>";
print_r($array);
效果图
![php递归经典案例 php递归经典案例](https://i-blog.csdnimg.cn/blog_migrate/938644cbcf195d7129a8fafd08aa6162.png)