比较多个阵列

Mcg*_*978 5 php

我正在试图找出如何编写决胜局功能.以下记录都因各种原因而捆绑,因此为了打破平局,我们对每个结果进行排序,然后遍历每一行.领带在第一点被打破,存在差异.

在下面的例子中,第一遍$ result [c]被消除,但a和b仍然是并列的.然后在第二次通过时,a被消除,因为它大于b.结果是b,a,c

$result[a] = array(1, 3, 4, 5);
$result[b] = array(1, 2, 3, 7);
$result[c] = array(2, 3, 3, 5);
Run Code Online (Sandbox Code Playgroud)

为了使它更复杂,我不会总是有相同数量的结果来比较.它可能超过2.

我真的希望这是有道理的.

goa*_*oat 3

在php中,您实际上可以直接使用关系运算符来比较数组

if ($result['a'] > $result['b']) {

}
Run Code Online (Sandbox Code Playgroud)

php 将只循环子数组,比较它们的元素。如果您想阅读http://php.net/manual/en/language.operators.comparison.php ,还有更多详细信息

无论如何,您可以利用这一点并对其进行排序。

asort($result);
print_r($result);
Run Code Online (Sandbox Code Playgroud)

如果您需要一种方法来获得第n名的参赛资格,请执行以下操作

asort($result);
print_r($result);
$ranked = array_keys($result);
$secondPlace = $ranked[1]; // a
print_r($result[$secondPlace]);
Run Code Online (Sandbox Code Playgroud)

如果您需要字母的排名索引

$letterRanks = array_flip($ranked);
echo $letterRanks['a']; // 1, for second 
Run Code Online (Sandbox Code Playgroud)