我有一个数组,我只是想通过score
键来命令,该键包含我要排序的值。所需的结果将更改下面数组的顺序,以按以下顺序显示索引:[0]
,[2]
,[1]
。
我正在循环从数据库中提取的结果。我正在创建一个名为score
的密钥,然后将$row2
数组推送到一个单独的数组中,因为如果我使用mysql_data_seek
它会删除score
密钥。
此外,它还会在底部创建一个不需要的密钥score
。
如何最好地清理它并确保结果按照需要从高到低排序?
$my_array = array();
while ($row2 = mysql_fetch_assoc($result2))
{
//score determined here
//$row2['score'] = ...more math, variable is numeric, not a string
array_push($array_page,$row2);
}
当前不受欢迎的结果......
Array
(
[0] => Array
(
[score] => 7
)
[1] => Array
(
[score] => 2
)
[2] => Array
(
[score] => 4
)
[score] =>
)
期望的结果......
Array
(
[0] => Array
(
[score] => 7
)
[2] => Array
(
[score] => 4
)
[1] => Array
(
[score] => 2
)
)
答案 0 :(得分:1)
function scoreSort($a, $b){
if($a['score'] == $b['score']) return 0;
return $a['score'] > $b['score'] ? -1 : 1;
}
usort(&$myArray, 'scoreSort');
在php> 5.3上你可以使用内联函数:
usort(&$myArray, function($a,$b){ /* ... */ });