php - 一个接收正数的PHP数组函数,返回最大值,如果数组为空则返回0
问题描述
我正在尝试编写一个 PHP 函数,它接收一个正数数组并返回数组中的最大数。虽然如果数组为空,它必须返回 0...
到目前为止,我有:
<?php
function getMaxArray($arr)
{
$i;
$max = $arr[0];
for ($i = 1; $i < $n; $i++) {
if ($arr[$i] > $max) {
$max = $arr[$i];
}
}
return $max;
}
但是我不确定如何合并'else 0',我是否应该尝试在'if first'中插入for循环(在我第一次尝试时无法让它工作)?
另外,我如何确保数组只接受正数?我试着问了一些朋友和谷歌搜索,但找不到太多关于这个的...
解决方案
我假设您正在学习,那么您的解决方案没有任何问题。然而,这是一个但很多的代码,可以更容易地完成:
$highest = count($array) ? max($array) : 0;
我将分步解释:
$example = (statement) ? ifTrue : ifFalse
. 它被称为短 if/else,可以读作if(statement){ ifTrue } else{ ifFalse}
.- 除了真假,还有真假。简化:'>0' 为真,'0' 为假。我们可以在这里使用它:
我们对 $array 使用计数。这是零或更高。- 如果它更高->它的真实性-> ifTrue 将运行。(
max($array)
) - 如果它的零 -> 它的假 -> ifFalse 将返回。(
0
在这种情况下)
- 如果它更高->它的真实性-> ifTrue 将运行。(
或者,您自己的代码可以稍微调整一下,您就有了一个可行的解决方案:
function getMaxArray($arr)
{
//$i; php we dont declare variables like this.
$max = 0; // <-- start with zero
for ($i = 0; $i < $n; $i++) { // <-- start at first $array item
if ($arr[$i] > $max) {
$max = $arr[$i];
}
}
return $max;
}
推荐阅读
- javascript - Javascript数组不正确的循环
- spring-security-oauth2 - 有人有 Spring Cloud Config oauth2 客户端配置吗?
- docker - 来自 docker 映像的 Grafana:无法在 localhost 进入 grafana 主页
- flutter - 如何在颤动中创建这些背景圆圈和波浪图案?
- c++ - 如何使用 CMake 分别编译 *.cpp 和 *.cu?
- lua - Lua拒绝从文件中读取
- python - 将列中的数据帧每小时值转换为系列 [Python]
- php - Doctrine EAV orderBy 和 search
- c++ - 是否可以使用 C++ 训练在 tensorflow 和 pytorch 中开发的 ONNX 模型?
- c# - 如何防止 string.TrimStart OutOfMemoryException