一个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循环吗?

另外,如何确保数组只接受正数?我试着问了一些朋友并在谷歌上搜索,但在这方面找不到太多。。。

为此使用max((,无需过度复杂化函数:

$numbers = [103, 170, 210, 375, 315, 470, 255];
function getMaxArray($arr)
{
if (empty($arr)) {
return 0;
} else {
return max($arr);
}
}
$largest = getMaxArray($numbers);
echo $largest;

为什么要重新发明php文档中的weel-just查找php中有一个max函数,它返回最大的

max((--查找最高值

function getMaxArray($arr)
{
return count($arr) ? max($arr) : 0;
}

我假设您正在学习,那么您的解决方案没有任何问题。然而,这是一个非常多的代码,可以更容易地完成:

$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(

或者,你自己的代码可以调整一点,你就有了一个可行的解决方案:

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;
}

最新更新