php怎么求数组中奇数的和
时间 : 2023-02-16 13:42:02声明: : 文章内容来自网络,不保证准确性,请自行甄别信息有效性
php求数组中奇数和是比较消磨时间的,好在php提供了很多内置函数,能够大大简化这类操作。
首先我们把一维数组的奇数和算出来。可以使用array_sum函数,里面传入一个参数array_filter,来帮助我们筛选出数组中的奇数。代码流程如下:
$arr = array(1,2,3,4,5);
$odd_sum = array_sum(array_filter($arr, function($v){
return ($v & 1); //偶数为0,奇数非零
}));
如果遇到多维数组,可以先用array_walk_recursive把多维数组转换成一维数组,然后再配合array_filter是能够筛选出想要元素,最后用array_sum对筛选出来的数组求和,代码流程如下:
$arr = array(
array(1,2,3),
array(4,5,6),
);
$odd_sum = 0;
array_walk_recursive($arr, function($v) use(&$odd_sum){
if($v & 1){
$odd_sum += $v;
}
});
echo $odd_sum;
以上两种方法的通用性都可以,但是在并发数量较大的情况下,array_sum会更快。所以大家可以根据需要来选择实现php数组中奇数和的方法。
关于php怎么求数组中奇数的和,把数组各项相加可以得出所有数字之和,但是如果要求数组中奇数的和又该怎么办?
解决这个问题,可以使用php中的for循环来解决。
方法1:
复制下列代码,把这段代码复制到你的php文件里,然后根据自己定义的数组名和数组大小,把数组里的元素替换掉就可以获取到数组中奇数的和:
$array=array(1,3,5,7,9); //定义一个大小为5的数组
$sum=0; //定义一个$sum变量用来存放奇数的和
for($i=0;$i<5;$i++){ //使用for循环,$i从0循环到4
if($array[$i] % 2 ==0){ //用if判断此时循环到的数组元素是否是偶数
}else{
$sum+=$array[$i]; //如果是奇数,把这个奇数加到sum变量中,直到循环完所有的数组元素
}
}
echo $sum;//最后echo出sum,就可以得到所有数组中奇数的和
```
方法2:
也可以使用php中的array_sum()函数,把数组传入到array_sum()函数中:
$array=array(1,3,5,7,9); //定义一个大小为5的数组
$sum=0;
for($i=0;$i<5;$i++){ //使用for循环,$i从0循环到4
if($array[$i] % 2 == 0){ //用if判断此时循环到的数组元素是否是偶数,如果是偶数,用array_sum()函数
$odd=array_sum(array_filter($array,function ($item) { //把数组中非偶数元素过滤出来,得到一个新的数组
return $item % 2;
}));
$sum+=$odd;//把过滤出来的新数组元素加到sum变量中,直到循环完所有的数组元素
}
}
echo $sum;//最后echo出sum,就可以得
https/SSL证书广告优选IDC>>
推荐主题模板更多>>
推荐文章