递归举例

递归打印数组

递归打印目录文件

<?php
$arr=array(1,2,3,4,array(5,6,7,array(8,9)));
//递归打印出数组$arr中的所有数值
function digui($array){
    if(is_array($array)){
        foreach ($array as $key => $value) {
            digui($value);
        }
    }else{
        echo $array,"<br/>";
    }
}
digui($arr);
//递归打印当前目录下的所有目录
function printdir($path,$lev=1){//$lev是前面有几个空格,不同目录用空格隔开
    $dh=opendir($path);
    while(($row=readdir($dh))!==false){
        echo str_repeat(' ', $lev*10),$row,'<br/>';
        if($row=="."||$row==".."){
            continue;//退出这一层
        }
        if(is_dir($path.'/'.$row)){//如果$row还是目录,就把这个目录再次递归调用
            printdir($path.'/'.$row,$lev+1);
        }
    }
    closedir($dh);
}
$path="./tieba";
printdir($path);

?>

 

posted @ 2015-08-20 21:05  飘逸110  阅读(139)  评论(0编辑  收藏  举报