foreach遍历父数组,然后遍历子数组,如何拼接父子数组
说明:parent array中含有唯一pid,pid通过调用M层获取子数组内容,要求parent数组和child数组拥有相同的key,然后合并成一起
code:
foreach($parentArray as $v){
$a['id']=$v['pid'];
$a['name'] =$v['name'];
...
$array[] =$a;
$childContent = $m->getChildContent($v['pid']);
foreach($childContent as $v2){
$b['id']=$v2['cid'];
$b['name']=$v2['cname'];
...
$array2[]=$b;
}
}
我想让输出这样的格式
array[0]{
$array里的内容,
$array2里的内容
}
array[1]{
$array,
$array2,
}
因为是无限分级,想将foreach遍历数组中第一个和child数组 组合成一起,做为一个数组,
最后输出样式:
parent父栏目
--child子栏目
parent父栏目
--child子栏目
parent父栏目
--child子栏目
.....
Droid
9 years, 6 months ago
Answers
不知道你说的是不是跟无限分类类似的情况。
如果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'
。
yuuka
answered 9 years, 6 months ago