【发布时间】:2016-02-10 03:21:25
【问题描述】:
我想通过 for 循环找到最大值和最小值,但问题是当数组值从像 (100,30,50,60) 这样的最大值开始时,输出是正确的第一个最大值,最小值。
否则先输出最小值,再输出最大值。
有什么想法吗?
//Number serial.
$number = array(10,15,20,100,25,30);
for ($i=0; $i<count($number); $i++){
//Find maximum number by max function.
if ($number[$i] == max($number)){
//Print maximum number.
echo " The max number is $number[$i] <br>" ;
}
//Find minimum number by min function.
elseif ($number[$i] == min($number)) {
//Print minimum number.
echo " The min number is $number[$i] <br>";
}
}
//Output:
//The min number is 10
//The max number is 100
当数组值从最大数开始时。
//Number serial.
$number = array(100,10,15,20,25,30);
for ($i=0; $i<count($number); $i++){
//Find maximum number by max function.
if ($number[$i] == max($number)){
//Print maximum number.
echo " The max number is $number[$i] <br>" ;
}
//Find minimum number by min function.
elseif ($number[$i] == min($number)) {
//Print minimum number.
echo " The min number is $number[$i] <br>";
}
}
//Output:
//The max number is 100
//The min number is 10
【问题讨论】:
-
为什么不直接使用
sort()而不是循环。 w3schools.com/php/php_arrays_sort.asp 其次,您可能希望将最大值和最小值保存在不同的变量中,在循环中,然后在最后回显它们。 -
因为您已经在使用
min()和max()。为什么不直接删除for循环? -
您能否解释一下这个问题。它似乎做了正确的行为,第二个代码块首先检查最大值,第一个元素是最大值,反过来,呼应它