gpt4 book ai didi

php - 如何从递归函数返回数组

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:03:11 32 4
gpt4 key购买 nike

我找不到解决方案,而且我也没有太多时间来解决这个问题。所以我想要的是制作我给类别 ID 的函数,它返回类别的所有 ID,这是它的子类别。

function getID($var) {
$categories = array();

function getChildren($id) {
$result = mysql_query("SELECT * FROM categories WHERE parentID = '$id'");
echo "<ul>";
while ($row = mysql_fetch_array($result)) {
echo "<li><a>{$row['ID']}</a>";
$categories[] = $row['ID'];
getChildren($row['ID']);
echo "</li>";
}
echo "</ul>";
}

getChildren($var);
return $categories;
}

我不想将所有内容都存储在 $categories 数组中。 $var 是我赋予函数的类别 ID。当我调用此函数时,它会打印出我不想要的列表,但数组是空的。

最佳答案

您似乎遇到了范围问题。试试这个:

function getChildren(&$categories, $id) {
$result = mysql_query("SELECT * FROM categories WHERE parentID = '$id'");
echo "<ul>";
while ($row = mysql_fetch_array($result)) {
echo "<li><a>{$row['ID']}</a>";
$categories[] = $row['ID'];
getChildren($categories, $row['ID']);
echo "</li>";
}
echo "</ul>";
}

function getID($var) {
$categories = array();

getChildren($categories, $var);
return $categories;
}

Here是描述如何通过引用而不是通过值传递的 PHP 引用页。基本上,它表示任何前面有 & 的函数参数都将通过引用而不是值传递。

关于php - 如何从递归函数返回数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15427397/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com