PHP 递归简单了解

来源:互联网 发布:手机版啊哈c语言 编辑:程序博客网 时间:2024/06/05 07:20

初学php的时候,刚刚认识递归。然后对他进行了小小的总结。适用于小小白

<?php//1.一个多维数组,单元为数字的变成两倍//如:array(1, 2, 'b', array(3, 'c', array(4, 5))); 中数字变成两倍function arr($arr){foreach ($arr as $key => $value) {  if (is_integer($value)) { //is_integer()  也就是 is_int()  $arr[$key] *= 2;  //$arr[$key] = $arr[$key] << 1;// $value << 1;  //使用$value 是错误的,变量值不变 }  if (is_array($value)) { $arr[$key] = arr($value); //递归函数就自身调用自身,如果发现二位数组中还有数组,那么继续调用自身,把二维数组解析完之后,在继续解析上一级的数组 } }return $arr;}$array = array(1, 2, 'a', array(3, 'b',array(4, 5 ,'c', 'd', array('e', 6))));print_r(arr($array));//2.创建连级目录 //如,给定'./a/b/c/d/e',但是./a不存在,进行递归创建function t($path){if (file_exists($path)) {echo 'exists';return;  } if (!file_exists($path)) { t(dirname($path)); mkdir(dirname($path)); } mkdir($path);}$path = './a/b/c/d/e/f';t($path);//3.删除一个目录下的所有文件  //明天重做//比如删除./a目录下的所有文件function m($path){$dh = opendir($path); while (($row = readdir($dh)) !== false) { if (!is_dir($path.'/'.$row)) {  unlink($path.'/'.$row);  }   else{  if ($row == '.' || $row == '..') {  continue; }   m($path.'/'.$row); } } closedir($dh); rmdir($path.'/'.$row);}$path = './a';m($path);


0 0
原创粉丝点击