可能重复:
How to create multi-dimensional array from a list?
PHP Create a Multidimensional Array from an array with relational data
我目前在我的数据库中有一个父子模型。该表如下所示:
id int
parent_id int
text int
假设我已经完成SELECT *
查询以检索此表中的所有列,我将如何从此结果集构建多维数组,其中每个数组包含一个子数组,其中parent_id等于行id。
示例数据:
id parent_id text
1 NULL Blah1
2 1 Blah 2
3 2 Blah3
4 1 Blah 4
最后,一旦构建了这个数组,你将如何迭代它以打印出像缩进结构一样的树?
Blah1
Blah2
Blah3
Blah4
非常感谢您的帮助。
答案 0 :(得分:0)
试试这个
$items = array(
array('id' => 1, 'parent_id' => null, 'text'=>'text'),
array('id' => 2, 'parent_id' => 1 , 'text'=>'text'),
array('id' => 3, 'parent_id' => 2, 'text'=>'text'),
array('id' => 4, 'parent_id' => 1 , 'text'=>'text'),
);
$childs = array();
foreach($items as $item)
$childs[$item['parent_id']][] = $item;
foreach($items as $item) if (isset($childs[$item['id']]))
$item['childs'] = $childs[$item['id']];
$tree = $childs[0];
var_dump($tree);