今天遇到一个需求就是,二维数组根据某个字段排序..现在代码有了..我就是搞不懂为什么就会那样做.. 因为按照我的理解.. 最起码要做一步判断的..求各位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;
}
返回之后的结果:

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
我知道为什么了。因为每次循环里面的数组。使用id作为key值。。php数组里面,如果key项目则不会创建新的数组,如果不存在则回创建新数组。所以,就可以实现上面的效果。。感觉大家的回答
判断的话你想要怎么判断呢
数组的关键就在于键的唯一性
需求是如果相同就合并到一个数组,这就意味着一维数组上是唯一的。
通过想合并的字段,将它作为数组的键,逐一向里追加就行了
你写的代码不是排序的代码,它就是把相同的id放入一个数组里,
要排序就得用冒泡排序、选择排序、插入排序等等排序算法