起步
很久没写PHP
了,最近有个需求,需要对数组,按照其中某个值,进行排序。
例如,对这个数组,按照age
排序
$a = [
["name"=>'peny', age=>29],
["name"=>'raj', age=>22],
["name"=>'sheldon', age=>30],
];
处理这个问题,需要组合使用PHP
内置数组方法array_column
和array_multisort
。
$a = [
["name"=>'peny', age=>29],
["name"=>'raj', age=>22],
["name"=>'sheldon', age=>30],
];
$age = array_column($a, 'age');
array_multisort($age, SORT_ASC, $a);
这样,就完成了对数组$a
按照age
进行排序。
更进一步
某些时候,需求可能是按照多个值,进行排序。
array_multisort同样是支持的。
$a = [
["name"=>'peny', age=>29, weight=>50],
["name"=>'raj', age=>22, weight=>80],
["name"=>'sheldon', age=>30, weight=>75],
];
$age = array_column($a, 'age');
$weight = array_column($a, 'weight');
array_multisort($age, SORT_ASC, $weight, SORT_ASC, $a);