-1

我希望我的函数返回整个 url,从具有给定 id 的节点开始,并为父母搜索,最后一个的 parent_id = 1。我的功能几乎可以工作,在 echo"$wholeUrl"; 我有我的网址,但功能不会重新调整它,我不知道 wtf,请帮忙。

这是我的代码

函数 getUrl($xml,$id){

$wholeUrl="";
$wholeUrl= getMyUrl($xml,$id,$wholeUrl);
return $wholeUrl;

}

函数 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 ) 
4

2 回答 2

5

您需要返回 getMyUrl:

    /* .... */
    }else{

        return getMyUrl($xml,$par,$wholeUrl);
    }
    /* .... */
于 2012-12-09T15:18:43.963 回答
1

你也必须return getMyUrl($xml,$par,$wholeUrl);这样做。否则外层getMyUrl继续foreach循环并搜索下一个节点。

于 2012-12-09T15:19:53.230 回答