我是靠谱客的博主 孤独小蘑菇,最近开发中收集的这篇文章主要介绍php如何求同列元素之和_求得这个数组中各个元素之和,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

给定一个数组:

$ar = array(1,2,3,4,5);

如果要求得这个数组中各个元素之和。

方法一、

很自然的用foreach实现

```

$sum = 0;

foreach ($ar as $v) {

$sum+=$v;

}

echo $sum;

```

方法二、

我们可以用array_reduce实现。它是专门用来迭代数组的。该函数最多接收三个参数。

第一个参数接收数组

第二个参数函数名,也可以是匿名函数,函数有两个参数,分别代表`$result`和`$item`

第三个参数(可选),该参数将被当成是数组中的第一个值来处理,或者如果数组为空的话就作为最终返回值。

```

function leijia($a,$b){

$a+=$b;

return $a;

}

$result = array_reduce($ar ,leijia);

echo $result;

```

继续优化,在`PHP5.3`以上中可以用匿名函数了。使代码更精简。

```

$result = array_reduce($ar ,function($a,$b){

$a+=$b;

return $a;

});

```

array_reduce的强大不仅如此。看下面的例子。将数组$arr的首个元素弹出,作为初始值,避免`min($result['min'], $item['min'])`中`$result`为空。

否则最终结果min是空的。

```

$arr = array(

array('min' => 1.5456, 'max' => 2.28548, 'volume' => 23.152),

array('min' => 1.5457, 'max' => 2.28549, 'volume' => 23.152),

array('min' => 1.5458, 'max' => 2.28550, 'volume' => 23.152),

array('min' => 1.5459, 'max' => 2.28551, 'volume' => 23.152),

array('min' => 1.5460, 'max' => 2.28552, 'volume' => 23.152),

);

$initial = array_shift($arr);

$t = array_reduce($arr, function($result, $item) {

$result['min'] = min($result['min'], $item['min']);

$result['max'] = max($result['max'], $item['max']);

$result['volume'] += $item['volume'];

return $result;

}, $initial);

```

总之,这种写法比foreach更优雅,更少的定义变量。推荐使用。

最后

以上就是孤独小蘑菇为你收集整理的php如何求同列元素之和_求得这个数组中各个元素之和的全部内容,希望文章能够帮你解决php如何求同列元素之和_求得这个数组中各个元素之和所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(86)

评论列表共有 0 条评论

立即
投稿
返回
顶部