递归函数,就是在函数体内调用自身例子:<?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 ...
一、XML文件转换为数组<?php/*******************************************************///simpleXML 解析XML文件非常简单//因为它一次性把XML文件解析成一个大对象
//来个简单的实例/************************************************ //从文件载入XML文档//$simxml = simplexml_load_file(‘book.xml‘);//print_r($simxml);//echo $simxml->book[1]->title;//查看bokstore下面有几本书//echo ‘有‘,$simxml->count(),"本书...
实现代码:复制代码 代码如下:<?phpfunction addslashes_deep($value){//史上最经典的递归,一行搞定return is_array($value) ? array_map(‘addslashes_deep‘, $value) : addslashes($value);}
//测试数据$_POST[‘STR‘] = "‘fanglor ‘ is \ a boy >‘";$_GET[‘STR1‘] = ‘fanglor " is \ a boy >‘;echo ‘当前get_magic_quotes_gpc为 ‘.get_magic_quotes_gpc();echo "<br/>";//判断当前是否开启get_magic_quotes_gp...
无限级分类是开发中常见的情况,因此本文对常见的无限极分类算法进行总结归纳.1.循环迭代实现 1 $arr = [2 1=>[‘id‘=>1,‘name‘=>‘父1‘,‘father‘=>NULL],3 2=>[‘id‘=>2,‘name‘=>‘父2‘,‘father‘=>NULL],4 3=>[‘id‘=>3,‘name‘=>‘父3‘,‘father‘=>NULL],5 4=>[‘id‘=>4,‘name‘=>‘儿1-1‘,‘father‘=>1],6 5=>[‘id‘=>5,‘name‘=>‘儿1-2‘,‘father‘=>1],7 6=>[‘id‘=>6,‘nam...