假设如下一个三维数组
$scoreList = array(
array('name' => 'Chen', 'score' => array('sport'=>95)),
array('name' => 'amy', 'score' => array('sport'=>45)),
array('name' => 'Li', 'score' => array('sport'=>55)),
array('name' => 'zhang', 'score' => array('sport'=>75))
);
之前尝试过很多种排序方法,但是最后还是发觉用php自带的usort函数最快
usort用法可以参考官网,说得很清楚了
例如:
function cmp($a, $b)
{
return $b['score']['sport'] - $a['score']['sport'];
}
usort($scoreList, 'cmp');
具体就是自己构造一个可以返回正数、0、负数的函数,然后作为usrot的返回函数
最后数组就会排序成从大到小或者相反,取决于$a、$b的位置,最后结果
Array
(
[0] => Array
(
[name] => Chen
[score] => Array
(
[sport] => 95
)
)
[1] => Array
(
[name] => zhang
[score] => Array
(
[sport] => 75
)
)
[2] => Array
(
[name] => Li
[score] => Array
(
[sport] => 55
)
)
[3] => Array
(
[name] => amy
[score] => Array
(
[sport] => 45
)
)
)