我的任务是创建一个显示列中所有偶数的循环,它还显示数组中所有奇数的总和。 到目前为止,我已经做到了这一点:
<?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.
我如何从这里开始处理?
答案 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;
}));