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,就可以得