使用php数组函数计算总和_通过php数组函数实现数值统计的技巧

数组统计在 PHP 中确实很方便。
我们来谈谈这些功能。

1 . array_sum是最直接的。
比如有一段代码是这样写的 php $数字 = [1 0, 2 0, 3 0]; $total = array_sum($numbers); 回显$总计; //直接输出6 0
这个函数特别省事,非数字自动跳过。
但是,如果在数组中混合字符串,则会被计为0,所以需要注意这一点。

2 array_map 可以处理复杂的情况。
例如,计算订单数量 php $订单 = [ ['id' => 1 , '金额' => 1 00], ['id' => 2 , '金额' => 2 00], ]; $金额 = array_map(函数($order) { 返回 $order['金额']; }, $订单); $total = array_sum($amounts);
这里用array_map来获取每笔订单的金额,然后汇总。
如果订单数据比较复杂,比如状态字段,仍然可以使用这个方法。

3 array_column 特别适合二维数组。
例如,学生成绩统计 php $学生 = [ ['名字' => '爱丽丝', '分数' => 8 5 ], ['姓名' => '鲍勃', '分数' => 9 0], ]; $scores = array_column($students, '分数'); $totalScore = array_sum($scores);
直接指定要提取的列名“score”,比循环写法简单很多。

4 array_filter用于条件统计。
例如,仅计算大于 5 0 的值 php $值 = [3 0, 6 0, 4 0, 8 0, 2 0]; $filtered = array_filter($values, 函数($v) { 返回 $v > 5 0; }); $sum = array_sum($filtered); //输出1 1 0
先过滤掉符合条件的元素,然后求和。
这种组合非常容易使用。

5 结合多种条件使用。
例如,如果订单价值大于 1 00 并且状态为“已完成” php $订单 = [ ['id' => 1 , '金额' => 1 00, '状态' => '待处理'], ['id' => 2 , '金额' => 2 00, '状态' => '已完成'], ]; $filtered = array_filter($orders, 函数($order) { return $order['amount'] > 1 00 && $order['status'] === '已完成'; }); $金额 = array_map(函数($order) { 返回 $order['金额']; }, $过滤); $总计 = array_sum($金额); //输出2 00
根据情况使用array_filter嵌套,或者使用array_map先提取字段再过滤。

说实话,如果熟悉这些函数的话,写统计代码确实很方便。
array_sum直接求和,array_map处理复杂结构,array_column提取数据,array_filter执行条件过滤。
可以非常灵活地组合。

用php求一到100的所以奇数和

代码明确指出 $sum 累加奇数。
for从1 到1 00循环。
if判断是否为奇数。
如果是,则添加到 $sum。
最后打印结果。

我上周刚刚处理了类似的请求。
这种写法没有任何问题。
效率足够了。

你的 if($i%2 !=0) 实际上可以写成 if($i%2 ) 。
无论如何,这都是关于奇数的。

我不记得确切的数据,但大概是这样的。
1 到1 00的奇数之和等于2 5 00。

你自己看看。