不知道你说的是不是跟无限分类类似的情况。
如果parent和child是放在同一个表(应该也是)
如果只有两层的话,我通常是这么做的
那么查询时按照pid排序
ORDER BY `pid` ASC
然后遍历数组
$result = array();
foreach($data as $v) {
if($v['pid'] == 0) {
$result[$v['id']] = $v;
continue;
}
$result[$v['pid']]['chlid'][] = $v;
}
var_dump($result);
如果是需要三层例如
array(
array(
'id',
'pid',
'child' => array(
array(
'id',
'pid',
'child' => array(
...
),
),
),
),
)
这样的话,我觉得这种方式的有点自找麻烦了。
参考资料:http://www.cnblogs.com/yangmanyan/archive/2011/06/16/2082963.html
抱歉更新一下,从数据库查询出来的结果,哪怕字段类型是整型,查询出来也是字符串。
所以应该是$v['pid'] == 0
或者$v['pid'] === '0'
。