你可以用
usort
$user1 = array('username' => 'test1', 'score' => 2000, 'someotherdata' => 1.0);
$user2 = array('username' => 'test2', 'score' => 4325, 'someotherdata' => 2.0);
$user3 = array('username' => 'test3', 'score' => 624534, 'someotherdata' => 3.0);
$user4 = array('username' => 'test4', 'score' => 564, 'someotherdata' => 1.4);
$user5 = array('username' => 'test5', 'score' => 34256, 'someotherdata' => 1.5);
$user6 = array('username' => 'test6', 'score' => 5476, 'someotherdata' => 1.8);
$arr = array($user1, $user2, $user3, $user4, $user5, $user6);
usort($arr, function($a, $b){
return $a['score'] - $b['score'];
});
echo "<pre>";
print_r( $arr );
echo "</pre>";
这将导致:
Array
(
[0] => Array
(
[username] => test4
[score] => 564
[someotherdata] => 1.4
)
[1] => Array
(
[username] => test1
[score] => 2000
[someotherdata] => 1
)
[2] => Array
(
[username] => test2
[score] => 4325
[someotherdata] => 2
)
[3] => Array
(
[username] => test6
[score] => 5476
[someotherdata] => 1.8
)
[4] => Array
(
[username] => test5
[score] => 34256
[someotherdata] => 1.5
)
[5] => Array
(
[username] => test3
[score] => 624534
[someotherdata] => 3
)
)
Doc:
usort()