所以我需要从数组中找到偶数和奇数的乘积。到目前为止,我只是设法确定哪些是奇数,哪些是偶数。
<?php
$array = array('2','1','1','6','3');
foreach($array as $v){
if($v%2==0){
$even = $v;
} else{
$odd = $v;
}
}
我怎么能将偶数相加(又是奇数)?
答案 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
)
);