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

php数组遍历追加数组键值的问题,第1张

可以遍历两次$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

    }

}

array_slice($arr,1,-1)截取出来再改

参考例子,完整写法:

$ar = array(

array(1 =>'a', 2 =>50, 3 =>60, 4 =>'long', 5 =>'zzz', 6 =>'kkk', 7 =>'ooo'),

array(1 =>'b', 2 =>60, 3 =>70, 4 =>'king', 5 =>'lll', 6 =>'ttt', 7 =>'ppp'),

array(1 =>'c', 2 =>70, 3 =>80, 4 =>'quit', 5 =>'qqq', 6 =>'xxx', 7 =>'ccc'),

)

$kname = array('StaffId', 'Wage', 'Name', 'Work', 'Type')

function foo(&$v, $k, $kname) {

$v = array_combine($kname, array_slice($v, 1, -1))

}

array_walk($ar, 'foo', $kname)

print_r($ar)

Array

(

[0] =>Array

(

[StaffId] =>50

[Wage] =>60

[Name] =>long

[Work] =>zzz

[Type] =>kkk

)

[1] =>Array

(

[StaffId] =>60

[Wage] =>70

[Name] =>king

[Work] =>lll

[Type] =>ttt

)

[2] =>Array

(

[StaffId] =>70

[Wage] =>80

[Name] =>quit

[Work] =>qqq

[Type] =>xxx

)

)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11834180.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存