首页 > 解决方案 > 如何在特定条件下提取数组中的最高值和最低值?

问题描述

假设我在数组内部有这种情况:

[0] => 4 - 0
[1] => 0 - 1
[2] => 2 - 2
[3] => 1 - 2
[4] => 0 - 0

该值被组织为团队的第一列,home团队的最后一列away,因此主队赢得的第一行4 - 0

现在我试图提取在这种情况下是“最好的胜利”4 - 0和“最大的失败”是0 - 1

我现在尝试的是遍历数组索引:

$biggestVictory = array_fill(0, 2, 0);
$biggestDefeat = array_fill(0, 2, 0);

foreach ($results as $result)
{
    $score = explode("-", $result);
    $home = $score[0];
    $away = $score[1];

    if($home > $biggestVictory[0] && $away <= $biggestVictory[1])
    {
        $biggestVictory[0] = $home;
        $biggestVictory[1] = $away;
    }

    if($away > $biggestDefeat [1] && $home <= $biggestDefeat [0])
    {
        $biggestDefeat [1] = $home;
        $biggestDefeat [2] = $away;
    }
}

这将返回结果 4 - 0 forbiggestVictory0 - 0for biggestDefeat,为什么?

标签: php

解决方案


您可以使用 Max Function 在数组中查找最大值

max() 函数返回数组中的最大值,或几个指定值中的最大值。

<?php
echo(max(2,4,6,8,10) . "<br>");
echo(max(22,14,68,18,15) . "<br>");
echo(max(array(4,6,8,10)) . "<br>");
echo(max(array(44,16,81,12)));
?>

您还可以使用 mini 函数在数组中查找最小值

min() 函数返回数组中的最小值,或几个指定值中的最小值。

<?php
echo(min(2,4,6,8,10) . "<br>");
echo(min(22,14,68,18,15) . "<br>");
echo(min(array(4,6,8,10)) . "<br>");
echo(min(array(44,16,81,12)));
?>

推荐阅读