草庐IT

非递归

全部标签

php - PHP 中的单例引用和递归

我有一个主Bootstrap类(下面示例中的singleton1),它实例化了一些单例类。在那些单例类中,我需要保留对应用程序主类的引用以便于快速引用它,但这样做给了我一个:Fatalerror:Maximumfunctionnestinglevelof'100'reached,aborting这是示例代码:singleton1=Singleton1::instance();}publicstaticfunctioninstance(){if(!self::$instance){$class=__CLASS__;self::$instance=new$class;}returnself

php - 大于或小于 array_walk 递归

我正在尝试用特定条件替换array值。假设数组$mark有以下值$mark=array(90,85);只是正常的检查值,它正在回显正确的值array_walk_recursive($mark,function(&$k){if($k==90){$k='4.0';}if($k==85){$k='3.6';}});print_r($mark);输出是Array([0]=>4.0[1]=>3.6)但是在应用大于或小于等条件时,它会返回错误的值。array_walk_recursive($mark,function(&$k){if($k>=90){$k='4.0';}if($k>=80AND$k

php - 从不同的 "method of a class"调用递归 "method of the same class"

我问了thisquestionbefore,有人放了一个链接来向我解释什么是递归函数。他/她投了反对票等等,就像在真正的递归函数中一样,所有其他人也投了反对票。现在我再问,我应该如何从不同的“同一类的方法”调用一个递归的“一个类的方法”em>?在第一个“递归方法”的定义中进行递归时,我应该使用$this->method()还是只使用method()谢谢;)(我称它为类的方法,以避免那些因为说“功能”而用否定杀死的人) 最佳答案 您以与调用任何其他方法相同的方式递归调用一个方法——只是您在其自身内部调用该方法。例如,请看以下内容:cl

php - 将函数从递归转换为迭代

我写的这个函数非常慢,因为php不能很好地处理递归。我正在尝试将其转换为while循环,但在思考如何进行时遇到了麻烦。谁能给我一些提示?publicfunctionfindRoute($curLoc,$distanceSoFar,$expectedValue){$this->locationsVisited[$curLoc]=true;$expectedValue+=$this->locationsArray[$curLoc]*$distanceSoFar;$at_end=true;for($i=1;$inumLocations;$i++){if($this->locationsVis

PHP:递归获取父级的子级

我有一个函数可以从我的数据库中获取父项的所有子项的ID。因此,如果我查找id7,它可能会返回一个包含5、6和10的数组。然后我想做的是递归地找到那些返回的id的child,依此类推,直到child的最终深度。我曾尝试编写一个函数来执行此操作,但我对递归感到困惑。functiongetChildren($parent_id){$tree=Array();$tree_string;if(!empty($parent_id)){//getOneLevel()returnsaone-dimentionalarrayofchildids$tree=$this->getOneLevel($pare

php - 帮助 PHP 递归导航列表菜单

我正在尝试将动态递归导航列表菜单添加到我正在处理的站点。场景是菜单有2个级别,由parentid(preid)关联。我的问题是我可以正确显示第一级列表,但是我无法正确显示第二级列表。我不确定在哪里添加第二级的UL和/UL标签。这就是我想要的Item1item2item3subitem1subitem2Item4item5subitem1subitem2item6这实际上是我用下面的代码得到的:item1item2subitem1subitem2SportsInjuries下面是我用来创建菜单的类文件:classDynamic_Menu{functiongetConfig(){$this

php - 递归遍历 DOM 树并删除不需要的标签?

$tags=array("applet"=>1,"script"=>1);$html=file_get_contents("test.html");$dom=newDOMdocument();@$dom->loadHTML($html);$xpath=newDOMXPath($dom);$body=$xpath->query("//body")->item(0);我要遍历网页的“正文”并删除$tags数组中列出的所有不需要的标签,但我找不到方法。那我该怎么做呢? 最佳答案 你有没有考虑过HTMLPurifier?从您自己的html清

php - CakePHP - 递归模型中的特定字段?

我是CakePHP的新手,但我想我已经开始掌握它了。我正在尝试递归地提取相关表信息,但我想指定要递归的相关模型。让我举个例子来证明我的目标:我有一个模型“客户”,其中包含公司名称、网站等信息。“客户”有许多“地址”,其中包含个人联系人的信息,例如联系人姓名、街道、城市、州、国家/地区等。“Customer”也属于“CustomerType”,它只是具有描述性类别信息-名称和描述,例如“Distributor”或“Manufacturer”。当我在“Customer”上进行查找时,我想获得关联的“CustomerType”和“Address”信息作为子数组,这只需正确设置hasMany和

利用Python解决汉诺塔问题(递归)

熟悉一下汉诺塔python解决汉诺塔问题问题:有三个立柱A、B、C。A柱上穿有大小不等的圆盘N个,较大的圆盘在下,较小的圆盘在上。要求把A柱上的圆盘全部移到C柱上,保持大盘在下、小盘在上的规律(可借助B柱)。每次移动只能把一个柱子最上面的圆盘移到另一个柱子的最上面。请输出移动过程。问题分析(看图):以上是来自https://blog.csdn.net/qq_41282102/article/details/85061198的图片。从以上n=2时的动图中可以发现,B相当于作为放置的媒介,而最关键的问题是:交换A与C的位置,那么B处就可以直接将小圆盘再放置上就大功告成!于我而言,递归递归关键的点在

PHP递归打印带键的多维数组的所有元素

我找到了下面的代码,它可以很好地打印数组的所有元素。我如何修改它以打印一次键,然后打印与键对应的所有值,然后是另一个键,然后是与键对应的所有值?我还想修改它,以便它只打印每个键的前9个值(不超过这个)。functionprintAll($a){if(!is_array($a)){echo$a,'';return;}foreach($aas$v){printAll($v);}} 最佳答案 我假设您想要一些非编程人员可以从中获得某种意义的东西。functionpretty_dump($arr,$d=1){if($d==1)echo"";