我希望我的函数返回整个url,从具有给定id的节点开始,并为父项进行serching,最后一个具有parent_id = 1。 我的功能几乎可以工作,回显“$ wholeUrl”;我有我的网址,但功能没有重新调整,我不知道wtf,请帮忙。
这是我的代码:
function getUrl($ xml,$ id){
$wholeUrl="";
$wholeUrl= getMyUrl($xml,$id,$wholeUrl);
return $wholeUrl;
}
function getMyUrl($ xml,$ idWew,$ wholeUrl){
foreach($xml as $node) {
$par = $node->parent_id;
$ide = $node->id;
$url = $node->url;
$name = $node->name;
settype($par,'integer');
settype($ide,'integer');
if($ide==$idWew){
$wholeUrl=$url."/".$wholeUrl;
if($par==1){
echo"$wholeUrl ";
return $wholeUrl;
break;
}else{
getMyUrl($xml,$par,$wholeUrl);
}
}
}
}
print_r(getUrl($xmlcat,1877));
$ xmlcat 是具有以下结构的平面数组:
SimpleXMLElement Object ( [id] => 1876 [parent_id] => 1 [name] => blablabla, bla, bla [url] => bla-bla-bla-bla )
答案 0 :(得分:5)
您需要返回getMyUrl:
/* .... */
}else{
return getMyUrl($xml,$par,$wholeUrl);
}
/* .... */
答案 1 :(得分:1)
您也必须return getMyUrl($xml,$par,$wholeUrl);
。
否则外部getMyUrl
继续foreach
循环并搜索下一个节点。