递归函数
函数自身调用自身,但必须在调用自身前有条件判断,否则会无限调用下去。适用于树形结构
处理多维数组
//将$arr多维数组重组成一个新数组
$arr = [[1,2,3,['A', 'B', 'C',['F1','F2', 'F3']]],'a', [4,5,6,['D', 'E', 'F']],'b'];
$newArr = [];
function printArray($arr,&$newArr)
{
if(is_array($arr)){
foreach ($arr as $i) {
if(is_array($i)) {
printArray($i, $newArr);
}else {
array_push($newArr,$i);
}
}
}
return $newArr;
}
print_r(printArray($arr,$newArr));
//Array ( [0] => 1 [1] => 2 [2] => 3 [3] => A [4] => B [5] => C [6] => F1 [7] => F2 [8] => F3 [9] => a [10] => 4 [11] => 5 [12] => 6 [13] => D [14] => E [15] => F [16] => b )
删除目录和文件
function delete_dir_file($dir)
{
$res = false; //声明一个初始状态 默认情况下缓存未被删除
if(is_dir($dir))
{
if($handle = opendir($dir))//成功打开目录流
{
while( ($file = readdir($handle)) != false)
{
if($file != '.' && $file != '..')
{
if(is_dir($dir.'\\'.$file)){
delete_dir_file($dir.'\\'.$file);
}else{
unlink($dir.'\\'.$file);/unlink只能删除一个文件
}
}
}
}
closedir($handle);//关闭目录句柄
if(rmdir($dir)){//目录只有为空的情况下才能被直接删除
$res = true;
}
}
return $res;
}
$app_path = 'D:\PHP\phpstudy_pro\WWW\php.edu\0805';
delete_dir_file($app_path ); //删除0805目录及其子目录和文件