【发布时间】:2015-05-12 18:52:05
【问题描述】:
我想知道如何在 PHP 中以“leaguePoints”为基础进行排序,然后在“wins”中进行排序
<?php
foreach ($league as $leaguesList)
{
if ($leaguesList->queue == "RANKED_SOLO_5x5")
{
foreach ($leaguesList as $list)
{
if ($list->division == $leagueSummoner->division){
$array[] = $list;
}
}
}
}
var_dump($array);
结果: http://pastebin.com/QkKU7W0k
我正在尝试从 Java 移植它,我是这样做的:
public void setRankList(List<LeagueSummonerLeagueStats> _rankList) {
rankList = _rankList;
Collections.sort(rankList, new Comparator() {
public int compare(Object match1Obj, Object match2Obj) {
LeagueSummonerLeagueStats league1 = (LeagueSummonerLeagueStats) match1Obj;
LeagueSummonerLeagueStats league2 = (LeagueSummonerLeagueStats) match2Obj;
int i = Integer.compare(league2.getLeaguePoints(), league1.getLeaguePoints());
if (i != 0)
return i;
i = Integer.compare(league2.getWins(), league1.getWins());
if (i != 0)
return i;
return -1;
}
});
}
非常感谢您的宝贵时间,非常感谢您的帮助。
【问题讨论】:
-
您需要在 PHP 中做的,正是您在 Java 中看到的:您必须定义一个排序比较函数。 (请参阅 PHP 的文档。)此函数将返回一个小于、等于或大于零的值,具体取决于排序引擎提供给它的两个变量之间的顺序。 “我不是写代码的服务”,但实现应该清晰。
-
P.S.我想知道该 Java 例程中是否存在 bug ......我从来没有看到它如何返回 zero!