我正在尝试编写一个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
(
- 如果它更高->它的真实性->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;
}