php - 如何在特定条件下提取数组中的最高值和最低值?
问题描述
假设我在数组内部有这种情况:
[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 forbiggestVictory
和0 - 0
for biggestDefeat
,为什么?
解决方案
您可以使用 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)));
?>
推荐阅读
- java - 使用 JSOUP 抓取网页并给出 SSL 错误。这是一个特定于站点的问题吗?(JSOUP 在其他网站上工作)
- javascript - 如何访问之前使用 chrome.scripting.executeScript 执行的脚本中的变量?
- swift - 当显示键盘时,将 UICollectionView 滚动到底部
- ktor - ktor 之上的自定义协议不是 HTTP 或具有本机支持的 websockets?
- html - jQuery设置时间输入标签的值
- python - 无法在 Sublime Text 中运行 python
- firebase - Firebase 云存储 - 超出限制
- nand2tetris - Nand to Tetris 如何将“pop this 2”编译成asm
- visual-studio-code - 如何在 VSCode 上的虚拟 venv 中获得安装在 PyGObject 库中的智能感知、自动完成功能?
- qt - QML TextField 不会根据 cursorPosition 定位文本