使用usort排序多个字段 [英] usort sorting multiple fields
本文介绍了使用usort排序多个字段的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
是否可以使用usort
对多维数组中的多个字段进行排序?例如,我想按字母顺序对name
进行排序,然后从这些记录中按age
对其进行排序.是否可以使用sort
?
Is it possible to use usort
to sort multiple fields in a multidimensional array? For example, I want to sort name
alphabetically and then from those records I want to sort them by age
. Is this possible using sort
?
Array (
[0] => Array (
[name] => Jonah
[age] => 27
)
[1] => Array (
[name] => Bianca
[age] => 32
)
)
推荐答案
怎么样:
$arr = Array (
0 => Array (
'name' => 'Jonah',
'age' => '27',
),
1 => Array (
'name' => 'Bianca',
'age' => '32',
),
2 => Array (
'name' => 'Jonah',
'age' => '25',
),
3 => Array (
'name' => 'Bianca',
'age' => '35',
),
);
function comp($a, $b) {
if ($a['name'] == $b['name']) {
return $a['age'] - $b['age'];
}
return strcmp($a['name'], $b['name']);
}
usort($arr, 'comp');
print_r($arr);
输出:
Array
(
[0] => Array
(
[name] => Bianca
[age] => 32
)
[1] => Array
(
[name] => Bianca
[age] => 35
)
[2] => Array
(
[name] => Jonah
[age] => 25
)
[3] => Array
(
[name] => Jonah
[age] => 27
)
)
这篇关于使用usort排序多个字段的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文