-1

関数が、指定されたIDを持つノードから開始し、親を検索するURL全体を返すようにしたいのですが、最後の1つはparent_id=1です。私の関数は、echo"$wholeUrl"でほぼ機能します。私は自分のURLを持っていますが、関数がそれを再調整せず、wtfがわかりません。助けてください。

これが私のコードです

関数getUrl($ xml、$ id){

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

}

関数getMyUrl($ xml、$ idWew、$ Wholesale){

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 に答える