起初的原因是一个朋友,问我如下代码能不能把id相同的能不能合并成一个数组
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | $a= [ 0=>[ 'id' =>1, 'name'=>'技术部', 'job'=>'后台开发' ], 1=>[ 'id' =>1, 'name'=>'技术部', 'job'=>'前端开发' ], 2=>[ 'id' =>2, 'name'=>'设计部', 'job'=>'UI设计师' ], ]; |
一开始我打算先取出 所有id 放在一个数组中,因为不想用循环所以打算用 array_column() 函数,取出id再去重在当做key使用,结果发现我家里安装的是php5.4的不支持。这个函数5.5才支持。。
于是,我去查了一下数组的手册就又想到个办法,发现实际上,我最终的想法还是哪 id 来做文章,所以我想何不直接循环用取id当key ?
所以代码如下,其实非常的简单。。比我一开始想的判断还简单很多,
1 2 3 4 | $res = []; foreach ($a as $k => $v) { $res[$v['id']][] = $v; } |
最终的效果
“>
———————————————————————–分割线——————————————————————————————————————–
新需求。说分类,意思就是下面这个样子,其实也很简单。。只要在上面原有的更改一下就行了,
// 部门一
// –职位一
// –职位二
// –职位三
// 部门二
// –职位一
// –职位二
1 2 3 4 | foreach ($a as $key => $val) { $result[$val['id']]['name'] = $val['name']; $result[$val['id']]['job'][] = $val['job']; } |
最终的效果
“>
yo