如何加总1个数组+另一个数组的总数

时间:2018-04-10 18:25:41

标签: php arrays

我是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这是我想要的输出。为什么这么难?哈哈...

我感谢你的帮助和时间。

1 个答案:

答案 0 :(得分:2)

首先,创建初始数组然后只提取奇数时涉及很多复杂性。通过使用rangearray_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与您为各个数组进行的操作相同

$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