我是PHP的新手初学者,我想知道如何将1个数组中的总数加上另一个数组的总数。我设法在谷歌上的stackoverflow答案的帮助下制作此代码。我不知道为什么,但没有解释或我正在查看它。一直在寻找近一个小时来完成这项工作。这是代码:
<?php
$array = array(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19);
$odds = array();
$even = array();
foreach($array as $val) {
if($val % 2 == 0) {
$even[] = $val;
} else {
$odds[] = $val;
}
}
$array = array();
foreach($even as $key => $val) {
$array[] = $val;
if(isset($odds[$key])) {
$array[] = $odds[$key];
}
}
echo '<b>Oneven</b> ';
print_r($odds);
echo '<br><br><br>';
echo "Bovenstaande <b>oneven</b> getallen bijelkaar opgeteld = " . array_sum($odds) . "\n";
echo '<br><br><br><hr style="margin-top:2%;margin-bottom:4%;">';
/* Array nummer 2 */
$array = array(20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40);
$odds = array();
$even = array();
foreach($array as $val) {
if($val % 2 == 0) {
$even[] = $val;
} else {
$odds[] = $val;
}
}
$array = array();
foreach($even as $key => $val) {
$array[] = $val;
if(isset($odds[$key])) {
$array[] = $odds[$key];
}
}
echo '<b>Even</b> ';
print_r($even);
echo '<br><br><br>';
echo "Bovenstaande <b>even</b> getallen bijelkaar opgeteld = " . array_sum($even) . "\n";
?>
所以我不知道如何以另一种方式做到这一点,但我首先使用数组1代码,然后代码2从另一个数组开始。
问题是我想制作一个包含1到19的奇数和20到40的偶数的程序,然后计算这2个数组的总数。有没有办法在1个代码中执行此操作并将这2个数组的总数统计在一起。我已经拥有了对数组进行计数的代码部分,在代码1中为100,在代码2中为330.
330 + 100 = 430这是我想要的输出。为什么这么难?哈哈...
我感谢你的帮助和时间。
答案 0 :(得分:2)
首先,创建初始数组然后只提取奇数时涉及很多复杂性。通过使用range
和array_filter
函数可以消除这种复杂性:
$odds = array_filter(range(1, 19), function($elem) {
return $elem & 1;
});
$even = array_filter(range(20, 40), function($elem) {
return $elem % 2 == 0;
});
要计算odds
加上even
之和的总和,您可以简单地将它们合并在一起并使用array_sum
与您为各个数组进行的操作相同1} p>
$totalSum = array_sum(array_merge($odds, $even))
正如@Darragh在评论中指出的那样,您可以通过为step
函数指定range
参数来简化数组创建。
$odds = range(1, 19, 2) // start at 1, go up to 19, by increments of 2