如何从递归函数返回数组

2023-12-04

我找不到解决方案,而且我没有太多时间。所以我想要的是创建一个函数,我给出类别 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 参考页面,描述如何通过引用而不是通过值传递。基本上它说任何具有&前面的将通过引用而不是值传递。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从递归函数返回数组 的相关文章

随机推荐

  • 从 JavaScript 检索或设置 LESS 变量?

    在测试我的网络应用程序时 我希望能够使用简单的下拉菜单设置我的 LESS variables 之一的值 完全改变配色方案 我想设置该值后 LESS 必须使用新值重新加载 重新编译 less 文件 有什么简单的方法可以实现这一点吗 我没有运行
  • 编程语言编译器首先翻译为汇编代码还是直接翻译为机器代码?

    我主要对流行且广泛使用的编译器感兴趣 例如 gcc 但如果不同的编译器的处理方式不同 我也想知道 以gcc为例 它是否直接将用C编写的短程序编译为machine代码 或者它首先将其翻译为人类可读的程序集 然后才使用 内置 汇编器将汇编程序翻
  • 依赖错误导致 NoSuchMethodError: PersistenceUnitInfo.getSharedCacheMode()Ljavax/persistence/SharedCacheMode;

    所以我在配置使用 Spring JPA 和 Hibernate 的项目的依赖项时遇到这个问题 我的依赖项看起来
  • 使用 nginx 拦截上游错误

    我的应用程序使用 nginx 和 uwsgi python 运行 我的目标是断开连接 如所解释的here 例如当 python 应用程序决定这样做时 是否有一个 nginx 参数来 拦截 上游错误 类似于proxy intercept er
  • oAuth 2.0 - 代表用户行事

    我是 oAUth2 的新手 我正在努力弄清楚一些事情 我了解 oAuth2 涉及的基本原理 但我不确定如何在我的情况下实现它 我正在编写一个应用程序 它代表用户自动执行手动流程并执行一些任务 更新 请求状态 等 我们连接的 API 使用 o
  • UnreachableBrowserException:无法启动新会话可能的原因是远程服务器地址无效或浏览器启动失败

    我是硒的新手 能够在 Ubuntu 上配置 selenium 设置 配置详细信息如下 谷歌浏览器 68 0 3440 84 ChromeDriver 2 41 578700 2f1ed5f9343c13f73144538f15c00b370
  • 如何从Android的内部和外部存储中获取所有.mp3文件

    我想做一个音乐播放器 但我无法从内部和外部存储中获取所有 mp3 文件 谁能帮助我吗 提前致谢 这是我的代码 public void getListOfSong1 Context context SongData cart clear Cu
  • 最大应力节点

    我正在尝试生成脚本以在最大应力位置自动创建模型视图 我知道我可以读取每个节点并使用 python 检查每个节点的压力 但是由于模型的大小 这将需要一段时间 由于此功能出现在 CAE 中 是否有一种简单的方法来编写脚本 一旦我知道了我感兴趣的
  • 在 GWT 中以编程方式调用 click() 函数

    我想在GWT中调用按钮的点击事件函数 我尝试了这段代码 但它不起作用 Button btnAddField new Button btnAddField setText Add btnAddField setWidth 225px btnA
  • 通过 XSD 防止 XML 中的空元素

    我正在处理一个 XSD 文件 当用它验证 XML 文件时 我想限制空元素 例如
  • 在 opencart 中显示子类别中的图像

    最近我第一次安装了Opencart 1 5 6 一切都很好 除了我试图在子类别中显示图像和文本 其中是 优化搜索文本 到目前为止我已经把这个放进去了catalog controller module category php childre
  • 模糊图像的卷积产生粗略的输出图像

    这是我的代码 void Blur NOT Sketch IplImage img int rows img gt height cols img gt width row col i j ki kj float sum 0 k 2 0 2
  • Go 提供 REPL 吗?

    交互式环境对程序员非常有帮助 然而 Go 似乎没有提供它 我的理解正确吗 不 Go 不提供REPL 读取 评估 打印循环 然而 正如已经提到的 去游乐场非常方便 Go 作者也在考虑为其添加一个功能丰富的编辑器 如果您想要本地的东西 请考虑安
  • Rake db:迁移错误“不知道如何构建任务”

    我有一个表 其中在需要小数位的字段上使用整数 因此我尝试创建一个迁移 将字段类型从整数更改为浮点 实数 我的数据库是sqllite3 我使用的是rails3 I ran rails generate migration ChangeMeas
  • 我在哪里可以获取文件 libstdc++.so.6.0.15 [关闭]

    Closed 这个问题是无关 目前不接受答案 我正在尝试解决我的问题 GLIBCXX 3 4 15 未找到 该问题有相当详细的记录可以修复 但它需要从某个地方获取文件 libstdc so 6 0 15 大多数解决方案告诉我从编译 C 库的
  • 图库一次滚动一张图像

    如何使图库控件一次滚动一张图像 另外 制作这些图像的连续循环的好方法是什么 我尝试重写 onFling 根本不起作用 这将图像移动一定的距离 但并没有真正实现 真正的分页 Override public boolean onFling Mo
  • sqlite3 按 max 查询并按第二个因素过滤

    I have TABLE MESSAGES message id conversation id from user timestamp message I want 1 SELECT WHERE from user lt gt id 2
  • 如果表单未提交则触发 onbeforeunload

    我有一个通过 PHP 提交的表单 有 3 个提交操作 保存并继续 保存并退出 退出而不保存 如果用户没有单击任何表单操作来通知他们要离开页面 并且他们的更改可能不会保存 我想触发 OnBeforeUnload 警报来显示 我已经尝试了以下代
  • .Net数组大小的限制

    我听说 Net 的大小有硬性限制Array 据说可以分配给单个实例的最大内存量Array对象 无论它是否int double 或您自己的阵列 是 2GB 不 如果您有 64 位计算机 则 2GB 限制仍然存在 我不确定我的印象是否正确 任何
  • 如何从递归函数返回数组

    我找不到解决方案 而且我没有太多时间 所以我想要的是创建一个函数 我给出类别 ID 它返回类别的所有 ID 这是它的子类别 function getID var categories array function getChildren i