php 递归算法

php 递归算法通过递归实现阶乘functionmulti($n){

大家好,又见面了,我是你们的朋友全栈君。

通过递归实现阶乘

function multi($n){

    if($n == 0){
return 1 ;//终止递归
}
$value = $n * multi($n-1);
return $value;
}

通过递归实现斐波那契数列
function Fib($n){
if($n ==1||$n==0){
return 1;//终止递归
}
$value = Fib($n-1)+Fib($n-2);
return $value;
}
echo Fib(6);



$category = [
[
'id' =>1,
'name'=>'男装',
'pid'=>0,
],
[
'id'=>2,
'name'=>'女装',
'pid'=>0,

],
[
'id'=>3,
'name'=>'男士外套',
'pid' =>1,
],
[
'id' =>4,
'name'=>'夹克',
'pid' =>3,

],
[
'id'=>5,
'name'=>'棉衣',
'pid'=> 3,
],
];

通过父类ID获取所有的子类
function recursiveCategory($pid,$category){
$data = [];
foreach ($category as $item){
if($item['pid']==$pid){
$arr['id'] = $item['id'];
$arr['name'] = $item['name'];
$cate = recursiveCategory($item['id'],$category);
if(!empty($cate)){
$arr[] =$cate;
}
$data[] = $arr;
unset($arr);
}
}
return $data;
};

通过子类获取所有的父类
function getCategoryByChild($childId,$category){
$data = [];
foreach ($category as $item){
if($item['id'] == $childId){
$arr['id'] =$item['id'];
$arr['name']= $item['name'];
if($item['pid']!=0){
$arr[] = getCategoryByChild($item['pid'],$category);
}
$data[]=$arr;
}
}
return $data;
}












 
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/155306.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • centos7系统更新命令_centos 更新

    centos7系统更新命令_centos 更新1.查看网络IP ifconfig2.下载命令 wget+网址3.安装 yum-y install + 目标4.删除文件 sudo rm 文件所在目录/目标强制删除文件 rm -f删除目录 rm -rf5.复制一个文件到另一个文件夹sudo cp /文件夹/文件 /另一个文件夹6.对一些文件进行读写sudo vim 文件名7….

    2022年8月19日
    6
  • Java中BufferedWriter类的常用方法

    Java中BufferedWriter类的常用方法BufferedWriter:字符缓冲输出流构造方法BufferedWriter(Writerout):默认缓冲区大小构造字符缓冲输出流对象BufferedWriter(Writerout,intsize):指定缓冲区大小常用方法publicvoidwrite(intc)throwsIOException写入单个字符。c-指定要写入字符的int。publicvoidwr…

    2022年5月30日
    37
  • selenium 和 IP代理池

    selenium 和 IP代理池3.1seleniumselenium:Selenium是一个自动化测试工具,利用它可以驱动浏览器执行特定的动作,如点击、下拉等操作(模拟浏览器操作)同时还可以获取浏览器当前呈现的页面的源代码,做到可见即可爬Selenium支持非常多的浏览器,如Chrome、Firefox、PhantomJS等浏览器对象的初始化并将其赋值为browser对象。接下来,我们要做的就是调用…

    2022年5月2日
    119
  • 国内教育邮箱有什么用_学校教育网邮箱

    国内教育邮箱有什么用_学校教育网邮箱教育优惠,是一项针对于在校大学生和教职员工推出的特殊优惠活动。一些公司会将旗下产品或服务以一定的折扣,甚至免费提供给高校师生。想想自己上大学的时候啥都不知道,毕业后才发现浪费了这么多优秀的资源.如果你还是一名在校大学生,那么就不要错过以下的这些教育优惠了,不然真的是失去后才会追悔莫及.申请教育优惠一般有一个前提,那就是要有一个学校提供的「校园邮箱」.在国内,也就是@xxx.edu.cn结尾……

    2022年9月23日
    3
  • 找不到springapplication_idea显示找不到或无法加载主类

    找不到springapplication_idea显示找不到或无法加载主类学习是一件反人性的事情最近计划重拾微服务的学习,于是使用官方的quickinitialization生成了一个示例项目,发现SpringApplication始终无法引入,当前使用的版本是SpringBoot2.0.3.RELEASE,仔细查了一下maven依赖,对应的spring-boot-2.0.3.Release.jar包里是存在SpringApplication类的。各…

    2025年10月15日
    2
  • ubuntu处理locale

    ubuntu处理locale

    2021年6月29日
    82

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号