OK、これが取り引きです: 私は次の基準に基づいてチームを並べ替えようとしています (順番に):
- 総合成績
- 部門記録
- 対戦結果
- ポイント
項目 1、2、および 4 については、単純に SQL データベースからデータを取得できます。したがって、SQL の結果を反復処理すると、次の配列を作成できます。
arr[$row['team_id']] => array('overall_wins' => $row['wins'],
'division_wins' => $row['div_wins'],
'points' => $row['pts']);
これまでのところすべて順調です。問題は、2 つ以上のチームの総合優勝と部門優勝が同じ場合です。その場合、私は彼らの直接対決の記録を使用して同点を打破できるようにする必要があります.
したがって、私の考えは、上記の配列を反復処理し、一時変数を使用して現在の値と前のチームの値が等しいかどうかを確認しoverall_wins
、division_wins
「何かをする」ことでした... 1 対 1 の記録を使用してタイを破りました。
これで、再び SQL を使用して 2 つのチーム間の対戦記録を取得できるので、それは問題ではありませんが、私の質問は次のとおりです。
直接対決の記録を使用して 2 つのチーム間の同点を打破するために配列を並べ替えるにはどうすればよいですか?
次の例を使用してみましょう。
team_id overall_wins division_wins
------------------------------------------
B 6 6
A 7 7
E 6 5
C 6 6
G 10 9
D 4 3
F 2 0
これは、最初は次のように再分類されます。
team_id overall_wins division_wins
------------------------------------------
G 10 9
A 7 7
B 6 6
C 6 6
E 6 5
D 4 3
F 2 0
...しかし、チーム C がチーム B に直接勝ったとしましょう。その場合、チーム B と Cを上記の順序で入れ替える必要があります。
PHP配列だけの範囲内でこれを行う方法がわかりません。一時配列全体などで完全に夢中になることはありません。
考え?ありがとう。