我想创建一个高尔夫球比分排行榜,但我有一个问题。我想按照谁有最低点来排列阵列,但是如果两个或更多个点有相同的点,则排列他们所在的洞。用2个条件对数组进行排序
我最初的阵列看起来像这样:
Array
(
[0] => Array
(
[userid] => 1301
[holes] => 6
[points] => -2
)
[1] => Array
(
[userid] => 231
[holes] => 5
[points] => 7
)
[2] => Array
(
[userid] => 3421
[holes] => 6
[points] => 7
)
[3] => Array
(
[userid] => 46
[holes] => 6
[points] => 3
)
[4] => Array
(
[userid] => 745
[holes] => 4
[points] => 7
)
)
现在,那么我做这个命令的阵列由点:
$sortArray = array();
foreach($playersArray as $person){
foreach($person as $key=>$value){
if(!isset($sortArray[$key])){
$sortArray[$key] = array();
}
$sortArray[$key][] = $value;
}
}
$orderby = "points";
array_multisort($sortArray[$orderby],SORT_ASC,$playersArray);
该订单由点的数组,但你可以看到,我有3名球员得到7分,但在不同的洞上,并且想要排列那些有相同洞的球员,所以最高排名是最低排名。
希望这是有道理的,任何帮助表示赞赏。
在此先感谢:-)
这将在由高到低的顺序对数据进行排序; – hassan
完美,实际上:-) – Mansa