-2

各再帰関数が呼び出されたときに配列に追加したい。いくつかの方法で遊んでみましたが、エラーが次々と発生します。これは私がやろうとしていることであり、私が達成しようとしていることを理解するのに十分なはずです。

function structure($x, $structure = array()) {
$qry = mysql_query("SELECT `parent_id` FROM `categories` WHERE `categories_id`=$x");
$result = mysql_fetch_assoc($qry);
$cat = $result['parent_id'];
if($cat !=0) {
    structure($cat, $structure[] = $cat);
}
echo $cat.' >';
return $structure;
}

echo structure(22);
var_dump($structure);

そのため、配列も返そうとしていますが、失敗しています。関数から配列を返す方法もわかりません。

したがって、再帰関数ごとに配列に追加し、関数の外側の配列を使用可能な変数に返す方法について助けていただければ幸いです。

4

1 に答える 1

0
if($cat !=0) {
    $structure = structure($cat, $structure[] = $cat);
}

structure() は値を返すため、それを変数に設定する必要があるため、この変数はすべての呼び出しで供給されます。そして最後に:

$whatever = structure(22);
var_dump($whatever );
于 2013-06-13T11:59:41.673 に答える