【发布时间】:2019-11-02 23:21:38
【问题描述】:
我正在尝试循环一个函数,该函数将所有子类别...从一个主要类别放入一个表并放入数组中。
示例表:
ID | ParentID
1 | 0
2 | 1
3 | 1
4 | 2
5 | 4
6 | 3
7 | 1
(子类别有 parentID)
现在函数 PHP 中的示例采用主类别 (ID=1) 的所有子类别
var_dump(getSubCategories(1));
function getSubCategories($parent_id = 0, $subcategories = array())
{
global $db;
$query = $db->query("
SELECT ID
FROM categories
WHERE ParentID = $parent_id
ORDER
BY Name ASC
");
while ($row = $query->fetch_assoc()) {
$subcategories = getSubCategories($row['ID'], $subcategories);
}
return $subcategories;
}
问题是将 ID 放在一个数组中,因为上面的代码打印了这个结果:
array(0) { }
我注意到的一件事是,如果我在下面添加这一行:
echo $row['ID'] . ',';
它正确打印结果,但不是作为数组:
2,3,4,5,6,7
我的期望是这样的,例如:array(1, 2, 3, 4, 5, 6, 7) 等...而不是多维的。
【问题讨论】:
-
您可以直接在查询中执行此操作。见stackoverflow.com/questions/20215744/…
-
前段时间我也回答了一个类似的问题。 stackoverflow.com/questions/192220/…
标签: php mysql hierarchical-data