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

我知道为什么了。因为每次循环里面的数组。使用id作为key值。。php数组里面,如果key项目则不会创建新的数组,如果不存在则回创建新数组。所以,就可以实现上面的效果。。感觉大家的回答
判断的话你想要怎么判断呢
数组的关键就在于键的唯一性
需求是如果相同就合并到一个数组,这就意味着一维数组上是唯一的。
通过想合并的字段,将它作为数组的键,逐一向里追加就行了
你写的代码不是排序的代码,它就是把相同的id放入一个数组里,
要排序就得用冒泡排序、选择排序、插入排序等等排序算法
博客探讨了如何根据二维数组中的某个字段进行排序的问题。作者提到,通过使用字段值作为数组键,可以实现相同字段值的元素聚合。代码示例展示了如何将具有相同'id'的数组元素合并到一起,而非进行排序。讨论中提到了排序算法如冒泡排序等,并指出所给代码仅实现了数据聚合,而非排序功能。

334

被折叠的 条评论
为什么被折叠?



