【问题标题】:PHP dynamic multidimensional array or objectsPHP 动态多维数组或对象
【发布时间】:2010-11-11 04:25:52
【问题描述】:

我正在尝试创建一个递归函数(或方法),它将子分层导航存储在数组变量或对象中。这是我所拥有的:

类导航扩展数据库 { 功能构建($parent_id = 0) { $query = 'SELECT id、name、href、parent_id 从导航 WHERE parent_id = '.$parent_id.' 按名称订购'; $results = $db->query($query); 而 ($row = $results->fetch_object()) { $nav[$row->id] = $row; // 回显 $row; $this->build($row->id); } 返回$导航; } }

如果您注释掉 echo $row 一切正常。所以我希望它在三层导航中做的是:

大批 ( [1] => 标准类对象 ( [id] => 1 [名称] => 主页 [href] => home.php [parent_id] => 0 ) [2] => 标准类对象 ( [id] => 2 [名称] => 公司 [href] => company.php [parent_id] => 0 ) [4] => 标准类对象 ( [id] => 4 [名称] => 公司愿景 [href] => company_vision.php [parent_id] => 2 ) [5] => 标准类对象 ( [id] => 5 [名称] => 公司目标 [href] => company_goals.php [parent_id] => 2 ) [3] => 标准类对象 ( [id] => 3 [名称] => 产品 [href] => products.php [parent_id] => 0 ) [6] => 标准类对象 ( [id] => 6 [名称] => 产品 鞋子 [href] => products_shoes.php [parent_id] => 3 ) [7] => 标准类对象 ( [id] => 7 [名称] => 耐克 [href] => products_shoes_nike.php [parent_id] => 6 ) )

仅作为示例,数组将动态执行此操作:

$nav[$row->id] = $row; // 家 $nav[$row->id] = $row; // 公司 $nav[2][$row->id] = $row; // 公司愿景 $nav[2][$row->id] = $row; // 公司目标 $nav[$row->id] = $row; // 产品 $nav[3][$row->id] = $row; // 产品 鞋子 $nav[3][6][$row->id] = $row; // 产品 鞋 耐克

提前致谢。

问题:如何创建递归函数/方法并将递归信息存储在变量中而不是回显结果?

问题: (a) PHP 每次递归调用自己时都会覆盖变量 (b) 一个解决方案是动态创建一个数组,但我不知道这是否可能

【问题讨论】:

  • 也许我没听懂你,但你有什么问题吗?
  • 有问题吗?
  • 有点离题,但我会在应用程序中按父 ID 排序使其成为单选(也就是说,如果你有一个从 0 开始的菜单)
  • 您是否正确转义了查询字符串?

标签: php arrays recursion


【解决方案1】:

【讨论】:

    猜你喜欢
    • 2012-08-09
    • 2022-01-02
    • 2014-08-14
    • 1970-01-01
    • 1970-01-01
    • 2023-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多