Sum of positive 计算所有正数的和
You get an array of numbers, return the sum of all of the positives ones.
Example [1,-4,7,12] => 1 + 7 + 12 = 20
Note: if there is nothing to sum, the sum is default to 0.
获取数组中所有正数的和,如果都不是正数,则输出和为0。
我的答案
function positive_sum($arr)
{
$sum = 0;
foreach ($arr as $v) {
if ($v > 0) {
$sum += $v;
}
}
return $sum;
}
人气最高答案
function positive_sum($a)
{
return array_sum(array_filter($a, function ($n) {
return $n > 0;
}));
}
知识点
- array_sum()
函数返回数组中所有值的和。
如果所有值都是整数,则返回一个整数值。如果其中有一个或多个值是浮点数,则返回浮点数。
- array_filter()
函数用回调函数过滤数组中的值。
该函数把输入数组中的每个键值传给回调函数。如果回调函数返回 true,则把输入数组中的当前键值返回结果数组中。数组键名保持不变。
反思
作为一道8 kyu
的题目,我用了比较常规无脑的写法,用foreach
遍历数组,再用if
来做判断求和,虽然能达到目的,但看了人气答案后,感觉自己对php
自带的一些数组函数非常不熟悉,这是一件很可怕的事情。要加强基础知识的恶补。
网友评论