PHP中偶数和奇数的乘积

时间:2014-06-15 23:24:11

标签: php numbers

所以我需要从数组中找到偶数和奇数的乘积。到目前为止,我只是设法确定哪些是奇数,哪些是偶数。

<?php
$array = array('2','1','1','6','3');

foreach($array as $v){
    if($v%2==0){
        $even = $v;
    } else{
        $odd = $v;
    }
}

我怎么能将偶数相加(又是奇数)?

3 个答案:

答案 0 :(得分:2)

首先启动变量,将它们设置为1.第一次迭代将是1*$v,这很好。然后使用*=运算符,它是$even = $even * $v;

的简写
<?php
$array = array('2','1','1','6','3');

$even = 1;
$odd = 1;
foreach($array as $v){
    if($v%2==0){
        $even *= $v;
    } else{
        $odd *= $v;
    }
}

修改

这是一个'1班轮'(如果计算启动阵列,则为2)

$p=array(1,1);
array_walk($array,function($v)use(&$p){$p[$v%2]*=$v;});

//$p[0] will be product of evens
//$p[1] will be product of odds

答案 1 :(得分:2)

使用*=运算符

$even = 1;
$odd = 1;
foreach($array as $v){
    if($v%2==0){
        $even *= $v;
    } else{
        $odd *= $v;
    }
}

答案 2 :(得分:1)

function filter($values, $function) {
    return array_filter(
        $values,
        $function
    );
}

$isEven = function ($value) {
    return !($value & 1);
};

$isOdd = function ($value) {
    return $value & 1;
};

$data = array('2','1','1','6','3');

$odds = array_product(
    filter(
        $data,
        $isOdd
    )
);

$evens = array_product(
    filter(
        $data,
        $isEven
    )
);