0

可能重复:
如何从列表中创建多维数组?
PHP 从具有关系数据的数组创建多维数组

我的数据库中目前有一个父子模型。该表如下所示:

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

非常感谢您的帮助。

4

1 回答 1

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);
于 2012-08-03T08:23:52.657 回答