• 0
  • 0

对二维数组按某个键值进行排序

2019-09-05 814 0 admin 所属分类:PHP 记录

有些时候我们需要对二维数组中的数据做排序。比如按用户的积分逆序,演示数据如下

$arr = [
	array(
		'name' => '内容',
		'age' => 28,
	),
	array(
		'name' => '内容2',
		'age' => 14
	),
	array(
		'name' => '内容3',
		'age' => 59,
	),
	array(
		'name' => '内容4',
		'age' => 23,
	),
	array(
		'name' => '内容5',
		'age' => 23,
	),
	array(
		'name' => '内容6',
		'age' => 21,
	),
];

调用PHP内置函数 array_multisort 进行处理

array_multisort(array_column($arr,'age'),SORT_DESC,$arr);

默认是按照升序排序 SORT_ASC ,这里采用逆序 SORT_DESC

很好奇的是虽然把数值获取出来传参。但是程序怎么知道究竟对哪个数值KEY做排序。有可能里面还有时间、金额字段。

我没有看过源码,我的猜想是内部去匹配最合适的key 然后拿这个KEY 去根据排序元素 可以用 array_push array_unshift 将新的元素插入头部和尾部

返回顶部