php递归函数使用以及无限级分类的使用

<?php
function test($n) {
	echo $n."  ";
	if($n>0)
		test($n-1);
	else
		echo "<-->";

	echo $n."  ";
}
test(1);


这是一个简单递归函数的使用,输出的结果是

1 0 <-->0 1


这个问题得从函数调用的时候内存中变化来理解,在一段php程序里面,每次执行到函数部分时,内存都会开辟一片新的空间,(姑且称之为空间吧),当遇到一个函数开辟一个空间的时候,也就是说$n=10的时候,先执行第一个echo $n." ",这里输出一个数字10吧,然后进入判断语句,遇到test()函数,开辟一个新空间,先不去看新空间里面有什么,下面的echo $n." ";肯定还是要执行的,现在等于说输出了这样的一个结果10 test(9) 10,下面再看test9的情况,同理是不是输出了10 9 test(8) 9 10,继续执行下去,你会发现程序的结果就是你输入的结果了。希望对你有所帮助!
 
递归在无限级的使用
 
	//这就是在取出的二维数组中添加一个数据level字段拼装到数组中,然后进行判断的操作
	public function reSort($data, $parent_id=0, $level=0)
	{
		static $ret = array();
		foreach ($data as $k => $v)
		{
			
			if($v['parent_id'] == $parent_id)
			{
				$v['level'] = $level;
				$ret[] = $v;
				$this->reSort($data, $v['id'], $level+1);
			}
		}
		return $ret;
	}

取出第一个一级的分类和它下面的子分类后,还会去执行另一个一级分类,去找它的子分类;这是递归函数的特性,就是如此的。
 
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值