php数组遍历追加数组键值的问题

$a=array(Array([cID]=>1[fID]=>0[cnname]=>站长资讯[enname]=>zzzx),Array([cID]=>2[fID]=>0[c... $a = array(
Array
(
[cID] => 1
[fID] =>0
[cnname] => 站长资讯
[enname] => zzzx
),
Array
(
[cID] => 2
[fID] =>0
[cnname] => 信息反馈
[enname] => xxfk
),
Array
(
[cID] => 3
[fID] =>0
[cnname] => 网站目录
[enname] => wzmu
),
Array
(
[cID] => 4
[fID] =>1
[cnname] => 建站技术
[enname] => jzjs
),
.......
)
这个数组包含了所有栏目信息。下面是我的循环:
public function colums($id)
{
foreach ($a as $key => $value) {
if($value['fid'] == $id){
$arr[$key]['cID'] = $value['cID']);
$arr[$key]['cnname'] = $value['cnname'];
//我的问题在这里:'zilanmu'这个是要压入的键名,而后面的键值又是数组,就是该栏目的子栏目信息。我还需要遍历一次$a,取出当前栏目的子栏目中'cID'、cnname'字段。
$arr[$key]['zilanmu'] = $arrs;
}
}
$this->assign('columns',$arr);
}

求教这个该怎么样嵌套?就剩10分了,谢谢了!!!
展开
 我来答
showmest
推荐于2016-10-24 · TA获得超过123个赞
知道小有建树答主
回答量:204
采纳率:0%
帮助的人:161万
展开全部
可以遍历两次$a, 第一次取出所有的父级栏目,放入$newarr中,第二次将子栏目放入对应
的父级栏目数组中, 最后使用$newarr就行
不过这是建立在只有二级栏目的基础上,如果有三级栏目的话就还要麻烦些了

$newarr = array();
foreach ($a as $key => $value)
{
    if($value['fID'] == 0)
    {
        $cid = $value['cID'];
        $newarr[$cid] = $value;
        unset($a[$key]);
    }
}

foreach ($a as $key => $value)
{
    if($value['fID'] != 0)
    {
        $fid = $value['fID'];
        $newarr[$fid]['zilanmu'][] = $value;
    }
}
德新桖2z
2013-11-03 · 超过22用户采纳过TA的回答
知道答主
回答量:89
采纳率:0%
帮助的人:64.7万
展开全部
你的每个 $arr[$key]['zilanmu'] 都是是个数组?
追问
是啊。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式