从rowset构建多维数组

时间:2012-08-03 08:14:16

标签: php mysql tree multidimensional-array

  

可能重复:
  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

非常感谢您的帮助。

1 个答案:

答案 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);