php 二维数组根据某个字段相同就合并
迷茫
迷茫 2017-04-11 09:51:42
[PHP讨论组]

今天遇到一个需求就是,二维数组根据某个字段排序..现在代码有了..我就是搞不懂为什么就会那样做.. 因为按照我的理解.. 最起码要做一步判断的..求各位dalao..解答一下~~

<?php
//原数组
$a= [
    0=>[
     'id' =>1,
     'name'=>'技术部',
     'job'=>'后台开发'
    ],
    1=>[
     'id' =>1,
     'name'=>'技术部',
     'job'=>'前端开发'
    ],
    2=>[
     'id' =>2,
     'name'=>'设计部',
     'job'=>'UI设计师'
    ],
];

echo '<pre>';
//代码
$res = [];
foreach ($a as $k => $v) {
    $res[$v['id']][] = $v;
}

返回之后的结果:

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全部回复(3)
伊谢尔伦

我知道为什么了。因为每次循环里面的数组。使用id作为key值。。php数组里面,如果key项目则不会创建新的数组,如果不存在则回创建新数组。所以,就可以实现上面的效果。。感觉大家的回答

ringa_lee

判断的话你想要怎么判断呢

数组的关键就在于键的唯一性

需求是如果相同就合并到一个数组,这就意味着一维数组上是唯一的。

通过想合并的字段,将它作为数组的键,逐一向里追加就行了

伊谢尔伦

你写的代码不是排序的代码,它就是把相同的id放入一个数组里,
要排序就得用冒泡排序、选择排序、插入排序等等排序算法

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号