【发布时间】: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 一切正常。所以我希望它在三层导航中做的是:
仅作为示例,数组将动态执行此操作:
$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 开始的菜单)
-
您是否正确转义了查询字符串?