当前位置:首页 » 编程语言 » 递归php

递归php

发布时间: 2022-01-09 05:32:48

php递归循环无限级,求解!

递归加入一个符号参数,如"空格",递归列表时把符号多连接上一倍,再输出

<?php
$arr=array(
0=>array(
'name'=>'first',
'_child'=>array(
0=>array(
'name'=>'second',
'_child'=>array(
0=>array(
'name'=>'three',
'_child'=>array()
),
1=>array(
'name'=>'three',
'_child'=>array()
),
2=>array(
'name'=>'three',
'_child'=>array()
),
)
),
1=>array(
'name'=>'second',
'_child'=>array(
0=>array(
'name'=>'three',
'_child'=>array()
),
1=>array(
'name'=>'three',
'_child'=>array()
),
2=>array(
'name'=>'three',
'_child'=>array()
),
)
),
),
)
);

functionechoData($arr,$str){
$str.='&nbsp;';
foreach($arras$k=>$v){
echo$str.$v['name'].'<br>';
if(count($v['_child'])){
echoData($v['_child'],$str);
}
}
}
echoData($arr,'');
?>

② PHP 如何递归算法

一般来说,类似这种遍历输出所有文件,大多采用递归算法,这样程序显得比较简洁,其实际执行效率来说,并不见得比其他方法更好。

以下是示例:

function file_list($path)
{
if ($handle = opendir($path))//打开路径成功
{
while (false !== ($file = readdir($handle)))//循环读取目录中的文件名并赋值给$file
{
if ($file != "." && $file != "..")//排除当前路径和前一路径
{
if (is_dir($path."/".$file))
{
// echo $path.": ".$file."<br>";//去掉此行显示的是所有的非目录文件
file_list($path."/".$file);
}
else
{
echo $path.": ".$file."<br>";
}
}
}
}
}

③ php递归函数

很简单,每个demo函数不考虑中间的自身递归,都输出同样的2个数$num.,这两个数其实就是首尾对称的的两个数,

④ php 递归问题

第一,没有选择数据库,在连接数据库后添加mysql_select_db("数据库名");
第二、我感觉不代码不全吧,因为我拷下来看了一下,少一},当然上面那个没少,补充的少了。
第三、还有没看出这个$ii是干什么用的。
第四、没感觉$selec=0与不等于0输出有什么不同。
第五、以后最好是把html代码与程序分开写。
因为不知道需求,只能根据你的程序简单修改如下:
<?php
function TreeMenu($selec) {
$Conn=mysql_connect("localhost","kk","kk123");
mysql_select_db("数据库名");
$ii=1;
$sql="select * from tvmenu where bid=".$selec;
$result=mysql_query($sql,$Conn);
$str = "";
while($row =mysql_fetch_array($result)) {
if($selec=0) {

$str = '<option value="'.$row['id'].'">'.$row['name'].'></option> ';

}else {

$str = '<option value="'.$row['id'].'">'.$row['name'].'></option> ';

}
echo $str;
$ii++;
TreeMenu($row['id']);
$ii--;
}
}
?>

<select name="bid" id="bid">
<?php
TreeMenu(0);
?>
</select>

⑤ php递归的方法求和1+2+3+...+n

<?php
function add($n)
{
$result = 0;
for($i=1;$i<$n+1;$i++)
{
$result += $i;
}
return $result; 返回计算结果
}
echo add(5); //调用上面的函数
?>

⑥ PHP 递归的解释

这个 是这样的。 首先传值10 进入函数 第一次函数还没执行最后一行的echo $num." "; 就嵌套进了第二次函数 .....直到进入最后一层函数 执行完了 就会跳出执行上一层的 函数没执行完的echo $num." "; 一直这样 最后就 到了第一次函数的 echo $num." ";

⑦ php递归和迭代的区别

递归和迭代都是循环的一种。 简单地说,递归是重复调用函数自身实现循环。迭代是函数内某段代码实现循环,而迭代与普通循环的区别是:循环代码中参与运算的变量同时是保存结果的变量,当前保存的结果作为下一次循环计算的初始值。   递归循环中,遇到满足终止条件的情况时逐层返回来结束。迭代则使用计数器结束循环。当然很多情况都是多种循环混合采用,这要根据具体需求。   递归的例子,比如给定一个整数数组,采用折半查询返回指定值在数组中的索引,假设数组已排序,为方便描述,假设元素都为正数,数组长度为二的整数倍。 折半查询是查询的一种,比遍历所有元素要快很多。 int Find(int *ary,int index,int len,int value) {     if(len==一)//最后一个元素     {         if (ary[index]==value)return index;//成功查询返回索引         return -一;//失败,返回-一     }     //如果长度大于一,进行折半递归查询     int half=len/二;     //检查被查值是否大于上半部分最后一个值,如果是则递归查询后半部分     if(value>ary[index+half-一])         return Find(ary,index+half,half,value);     //否则递归查询上半部分     return Find(ary,index,half,value); }     迭代经典例子就是实数的累加,比如计算一-一00所有实数的和。 int v=一; for(i=二;i<=一00;i++) {     v=v+i;

⑧ 如何理解php中的递归函数 (详细讲解)

递归其实就是“一个函数的自调用”
在这个“自调用”的过程中,必须要有一个变化的“参数”,当这个“参数”达到你的期望值的时候,终止该“自调用”过程

拿楼主的程序来说

demo($n)内部又有调用demo($n-1),构成了“自调用”
且,$n又有一个“期望值”,即是$n>1,不满足此条件时,该自调用终止

即是说,最后一个执行的demo是demo($n9-1),其中$n9=2,然后返回为1(因为执行了return 1)
则$n9*demo($n9-1)即等于 2*demo(2-1),又等于2*1=2;
则$n8*demo($n8-1)即等于 3*demo(3-1),又等于3*2=6;
则$n7*demo($n7-1)即等于 4*demo(4-1),又等于4*6=24;
……
依次类推

这样想:
demo(1)是等于1,这个没有疑问吧?
然后demo(2)等于2*demo(1)=2*1=2
然后demo(3)等于3*demo(2)=3*2=6
……
一直到demo(10)

⑨ PHP怎么递归

下面我举一个其他的例子,虽然不是族谱,但是原理都是一样的。

在一些复杂的系统中,要求对信息栏目进行无限级的分类,以增强系统的灵活性。那么PHP是如何实现无限级分类的呢?我们在本文中使用递归算法并结合mysql数据表实现无限级分类。
递归,简单的说就是一段程序代码的重复调用,当把代码写到一个自定义函数中,将参数等变量保存,函数中重复调用函数,直到达到某个条件才跳出,返回相应的数据。
Mysql
首先我们准备一张数据表class,记录商品分类信息。表中有三个字段,id:分类编号,主键自增长;title:分类名称;pid:所属上级分类id。
class表结构:

CREATE TABLE IF NOT EXISTS `class` (
`id` mediumint(6) NOT NULL AUTO_INCREMENT,
`title` varchar(30) NOT NULL,
`pid` mediumint(6) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

插入数据后,如图:

如果要输出json格式的数据,则可使用:

echo json_encode($list);

⑩ 几十万条数据用PHP递归能实现无限级分类吗

数据量大就使用分页和异步查询,一次查询全部出来 ,内存肯定是吃不消的,运行时间也会比较久。

热点内容
苹果连接id服务器出错是怎么回事 发布:2024-09-20 08:01:07 浏览:502
编程键是什么 发布:2024-09-20 07:52:47 浏览:651
学考密码重置要求的证件是什么 发布:2024-09-20 07:19:46 浏览:477
电脑主服务器怎么开机 发布:2024-09-20 07:19:07 浏览:728
2022款瑞虎升级哪些配置 发布:2024-09-20 06:59:07 浏览:264
数据库与asp 发布:2024-09-20 06:55:25 浏览:727
python解释编译 发布:2024-09-20 06:52:57 浏览:648
舞蹈丰收脚本 发布:2024-09-20 06:36:26 浏览:595
linux进程端口号 发布:2024-09-20 06:36:11 浏览:80
派派怎么改密码忘了 发布:2024-09-20 06:25:49 浏览:780