草庐IT

递归方程

全部标签

PHP处理递归的能力

我最近在一些地方看到有人说PHP的递归能力很差。最近写了一个用于图遍历的递归php函数,发现和java相比速度很慢。我不知道这是因为php的递归能力还是因为php通常比java慢。一些谷歌搜索揭示了这一点(http://bugs.php.net/bug.php?id=1901)[7Aug199912:25pmUTC]zeevatcvsdotphpdotnetPHP4.0(Zend)usesthestackforintensivedata,ratherthanusingtheheap.Thatmeansthatitstolerancerecursivefunctionsissignifi

php - 按父/子 ID 重组数组。递归?

我有一组位置。这些位置中的每一个都可以有子位置。每个子位置也可以有子位置,依此类推:$locations=array(array("id"=>1,"parent_id"=>0,"name"=>"England"),array("id"=>2,"parent_id"=>0,"name"=>"Scotland"),array("id"=>3,"parent_id"=>0,"name"=>"Ireland"),array("id"=>4,"parent_id"=>0,"name"=>"Wales"),array("id"=>5,"parent_id"=>1,"name"=>"EastEngl

php - 编写表达式以递归地提取括号之间的数据

我正在尝试编写一个正则表达式,将字符串拆分为匹配花括号内的单独元素。首先,它需要递归,其次,它必须返回偏移量(与PREG_OFFSET_CAPTURE一样)。我实际上认为这可能是处理这些数据的一种效率较低的方法,但我不确定是否有一种更简单、性能更高的技术。(如果你有,我很想听听!)因此,输入可以采用以下格式:Hello{#name}!I'ma{%string|sentence|bitof{#random}text}如果数据是这种格式,处理数据就足够容易了:Hello{#name}!I'ma{%string|sentence|bitofrandomtext}但是,处理时的问题是另一组花括

PHP - 从递归函数返回数组时出错

经过两个小时的摸索和谷歌搜索——我被困住了!按照标题,我试图返回一个在函数循环时建立的数组。我只想在else上返回数组变量,但它不会合作。它只是从函数中返回为空白,但是在else中我可以打印它并按预期显示。它只是不会返回$open_array变量中的数组。任何想法(或滥用)将不胜感激!functionfind_parent($number,$open=false){if(isset($other_variable[$number])){foreach($other_variable[$number]as$val){$open[$val->id]=[$val->id;$open=find

PHP:引用在递归调用之间共享

我有三个函数,foo、bar和baz,在我看来,它们应该产生相同的结果。但是,我遇到了一个问题,即引用在递归函数调用之间共享。$array=array('subs'=>array('a'=>1,'b'=>2,),);functionfoo(&$array,$value,$callAgain=true){$subs=&$array['subs'];foreach($subsas&$sub)$sub=$value;if($callAgain){$copy=$array;foo($copy,$value+1,false);}}functionbar(&$array,$value,$callA

php - 一种用于递归迭代器的 iterator_to_array 以获得二维数组

在PHP中使用迭代器时,您可以使用iterator_to_array函数来提取迭代结果的数组。例如,假设您有以下ArrayObject:$array_object=newArrayObject(array(array('1','2','3','4'),array('5','6','7','8'),array('9','10','11','12'),));如你所见,它的存储是一个二维数组。我们可以创建一个FilterOperator只接受它的第一项(我知道使用LimitIterator会更好,它只是作为示例目的):classmyFilterIteratorextendsFilterIte

PHP - 解析字符串中的数学方程式

我正在努力寻找执行此操作的最佳方法。基本上,我会得到类似这样的字符串,任务是打印出经过数学分析的字符串。jack有[0.8*100]%的机会通过测试。凯蒂有[(0.25+0.1)*100]%的几率。数学方程总是用方括号括起来。为什么我要像这样处理字符串是一个很长的故事,但我非常感谢您的帮助! 最佳答案 PHP有很多数学计算库。快速网络搜索出现thisone.编写您自己的解析器也是一种选择,如果只是基本的算术运算,应该不会太困难。有了那里的资源,我会远离这个。您可以采用更简单的方法并使用eval.请注意先清理您的输入。关于evaldo

PHP递归函数问题?

我想为我的第一个和第四个添加两个不同的类属性标签,但我真的不知道如何将它添加到我的递归函数中?有人可以帮助我吗?这是我的PHP脚本。functionmake_list($parent=0,$parent_url=''){global$link;echo'';foreach($parentas$id=>$cat){if($cat['parent_id']=='0'){$url=$parent_url.$cat['url'];echo''.$cat['category'].'';}else{$url=$parent_url.$cat['url'];//Displaytheitem:echo

PHP递归多维循环

$printArr=recursive($newArray);//callsrecursivefunction$data=[];var_dump($data);var_dump($printArr);functionrecursive($array,$level=0){$searchingValue='tableName';foreach($arrayas$key=>$value){//If$valueisanarray.if(is_array($value)){recursive($value,$level+1);}else{//Itisnotanarray,soprintitout

php - 论坛中的递归引用

我在一个用PHP编写的网站上为我自己的个人论坛编写了一个报价功能。消息引用标签看起来像[quote=username]message[/quote],所以我写了那个函数:$str=preg_replace('#\[quote=(.*?)\](.*?)\[/quote\]#is','$1wrote:$2',$str);如果引用是一个,这个就可以用,但是用户引用一个引用,这个就不行了。所以我需要一种递归引用来应用这种行为。我试着搜索了很多主题,但我真的不明白它是如何工作的。对于进行此类操作的任何建议/提示,我们将不胜感激!让我知道,谢谢!编辑最后,这是我自己的解决方案:if(preg_ma