$path=‘./phpMyAdmin‘;function delAll($path){if(is_dir($path)){$handle=opendir($path);//$file=readdir($handle); 为什么不能在外面读取目录句柄 while(false !== ($file = readdir($handle))){if($file==‘.‘ ||$file==‘..‘){continue;}if(is_dir($path.‘/‘.$file)){delAll($path.‘/‘.$file);}else{unlink($path.‘/‘.$file); //删除文件 }}closedir($handle); //关闭目录句柄//r...
我自己构思了下,实际上程序来解决这个事情,就是一个偏移量的问题。首先看数列::1、1、2、3、5、8、13、21、34数列的下一个数是前2个数字之和,以此类推。 程序处理的话,实际上就是一个FOR语句,传统FOR语句是for($i=1;$i;$count,$i++),这里的偏移量是$i=$i+1.如果处理这个数列的话,这个偏移量就不是1了,是前1个数字。那么当你for的时候,一个变量记录上一个数字,另外一个记录当前数字,偏移量为这上一个数字,然后在循环中...
数据表结构id name pid private function tree($data,$p_id=0){foreach($data as $row){if($row[‘pid‘]==$p_id){$tmp = $this->tree($data,$row[‘id‘]);if($tmp){$row[‘child‘]=$tmp;}else{$row[‘leaf‘] = true;}$tree[]=$row; }}Return $tree;} 原文:http://www.cnblogs.com/baby123/p/5382085.html
递归函数,就是在函数体内调用自身例子:<?phpfunction repayment($number){ if ($number<10){ echo $number."<hr>"; $number++; repayment($number); }}//递归函数,就是在函数体内调用自身,疑问:加exit()和不加exit有什么区别?repayment(1); ?> 例子2:function add($num){ if ($num>1){ $num--; return add($num)*$num; }else{ return 1; }}echo number_format(add(20));原文:http://www.cnblogs.com/pan-hello/p/456...
本文实例讲述了php实现用于删除整个目录的递归函数。分享给大家供大家参考。具体实现方法如下:
<?php
function delete_directory($dir) {if ($dh = @opendir($dir)) {while (($file = readdir ($dh)) != false) {if (($file == ".") || ($file == "..")) continue;if (is_dir($dir . ‘/‘ . $file))delete_directory($dir . ‘/‘ . $file);elseunlink($dir . ‘/‘ . $file);}@closedir($dh);rmdir($dir);}
}
$dir = "./fakeDir...
<?phpheader(‘Content-Type: text/html; charset=utf-8‘);
/** * @param 目录地址*/
function readDirs($path) {$dir_handle = openDir($path);while(false !== $file=readDir($dir_handle)) {if ($file==‘.‘ || $file==‘..‘) continue;//输出该文件echo $file, ‘<br>‘;//判断当前是否为目录if(is_dir($path . ‘/‘ . $file)) {//是目录readDirs($path . ‘/‘ . $file);}}closeDir($dir_handle);
}// $path = ‘./‘;
//...
echo ‘<hr>‘;$arr = array( array(‘id‘=>1,‘name‘=>‘小明爸‘,‘pid‘=>0), array(‘id‘=>2,‘name‘=>‘小强爸‘,‘pid‘=>0), array(‘id‘=>3,‘name‘=>‘小黑爸‘,‘pid‘=>0), array(‘id‘=>4,‘name‘=>‘小明‘,‘pid‘=>1), array(‘id‘=>5,‘name‘=>‘小强‘,‘pid‘=>2), array(‘id‘=>6,‘name‘=>‘小黑‘,‘pid‘=>3), ...
项目中需要复制整个文件夹,有时候还需要将整个文件夹传输到远程服务器。这里就要递归遍历整个文件夹了,想看递归遍历文件夹的代码。 function deepScanDir($dir) {$fileArr = array ();$dirArr = array ();$dir = rtrim($dir, ‘//‘);if (is_dir($dir)) {$dirHandle = opendir($dir);while (false !== ($fileName = readdir($dirHandle))) {$subFile = $dir . DIRECTORY_SEPARATOR . $fileName;if (is_file($subFile)) {$fileArr...
1/**2 * 返回多层栏目3 * @param $data 操作的数组4 * @param int $pid 一级PID的值5 * @param string $html 栏目名称前缀6 * @param string $fieldPri 唯一键名,如果是表则是表的主键7 * @param string $fieldPid 父ID键名8 * @param int $level 不需要传参数(执行时调用)9 * @return array
10*/11publicfunction channelLevel($data, $pid = 0, $html = " ", $fieldPri = ‘cid‘, $fieldPid...
/*** 排序层级排序* @param $arr 数组* @param $id id* @param $level 层级* @return array*/function sortPid($arr, $id, $level = 0){$data =array();foreach ($arr as $k=>$v) {if ($v[‘parent_id‘] == $id) {$v[‘level‘]=$level;$v[‘children‘] = sortPid($arr, $v[‘id‘], $level+1);$data[] = $v;}}return $data;}/** * 同级排序 * @param $arr 数组 * @param $id id * @param $level 层级 * @return array */funct...
递归函数是我们常用到的一类函数,最基本的特点是函数自身调用自身,但必须在调用自身前有条件判断,否则无限无限调用下去。实现递归函数可以采取什么方式呢?本文列出了三种基本方式。理解其原来需要一定的基础知识水品,包括对全局变量,引用,静态变量的理解,也需对他们的作用范围有所理解。递归函数也是解决无限级分类的一个很好地技巧。如果对无限级分类感兴趣,请参照php利用递归函数实现无限级分类。我习惯套用通俗的话解释...
private function tree_data(&$list, $parent){ $tree = array(); foreach($list as $row) { if($row[‘permission_parent_id‘] == $parent) { $row[‘children‘] = $this->tree_data($list, $row[‘permission_id‘]); $tree[] = $row; } } return $tree;}原文:http://www.cnblogs.com/chenkg/p/6088259.ht...
本文实例讲述了php递归调用删除数组空值元素的方法。分享给大家供大家参考。具体如下:该函数可以删除数组里的所有空值元素,包含空字符串,空的数组等等。
function array_remove_empty($arr){$narr = array();while(list($key, $val) = each($arr)){if (is_array($val)){$val = array_remove_empty($val);// does the result array contain anything?if (count($val)!=0){// yes :-)$narr[$key] = $val;}}else {if (trim($val) !...
我们在建设一个网站的时候,程序员们首选的当属PHP语言。我们对PHP还是比较熟悉的,接下来我们将会为大家介绍一下PHP递归算法。PHP,一个嵌套的缩写名称,是英文超级文本预处理语言(PHP:Hypertext Preprocessor)的缩写。PHP 是一种 HTML 内嵌式的语言,是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言,现在被很多的网站编程人员广泛的运用。PHP 独特的语法混合了 C、Java、Perl 以及 PHP 自创新的语法。...
//获取拿货上级 public function getTakeGoodsMember($member_id) { $allMember = Db::query("SELECT id,superior_userid,user_name,level_id,take_goods_userid FROM ( SELECT @r AS _id, (SELECT @r := take_goods_userid FROM " . config(‘database.prefix‘) . "user WHERE id = _id) AS parent_id, @l := @l + 1 AS lvl FROM ...