PHP“for”循环,列出所有偶数,并显示数组中所有奇数的总和

时间:2017-08-02 15:38:45

标签: php arrays loops for-loop sum

我的任务是创建一个显示列中所有偶数的循环,它还显示数组中所有奇数的总和。 到目前为止,我已经做到了这一点:

<?php
$numbers = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
foreach ($numbers as $index=>$value) {
if ($value % 2 == 0)
echo "$value <br>";
}
?>

此代码成功显示所有偶数的列表。但是,我仍然必须包括显示在均匀列表下方的所有奇数的总和。出于某种原因,我应该使用变量$ sumOdd = 0.

我如何从这里开始处理?

5 个答案:

答案 0 :(得分:6)

<?php
$numbers = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
$sumOdd = 0;

foreach ($numbers as $index=>$value) {

    if ($value % 2 == 0)
        echo "$value <br>";
    } else {
        $sumOdd += $value
    }
}

echo $sumOdd;

答案 1 :(得分:1)

向后做:添加所有数字,取出偶数

<?php
$numbers = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
$sum = array_sum($numbers);
foreach ($numbers as $index=>$value) {
  if ($value % 2 == 0)
  echo "$value <br>";
  $sum = $sum - $value;
}
echo 'odds: '. $sum;
?>

答案 2 :(得分:0)

heyo,

$ sumOdd = 0;应该在foreach之前,在foreach内你会做另一次检查,如果奇怪,你在$ sumOdd + = $ value

上添加数字

答案 3 :(得分:0)

这是一个简短而清晰的答案:

$sumOdd = 0;

foreach (range(1, 10) as $number) {

    if (0 === $number % 2) {
        echo $number . '<br>';
        continue;
    } 

    $sumOdd += $number; 
}

echo '<br> sumOdd = '.$sumOdd;

答案 4 :(得分:0)

计算总和的更好方法是将array_filter的结果传递给array_sum。通过这样做,您可以分离任务(计算,显示),代码变得更加干净和可维护。

$numbers = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
$sumOdd = array_sum(array_filter($numbers, function($v) {
    return $v % 2 !== 0;
}));