2017-01-13 102 views
0

你只想要的元素我有这样$arr = array(2, -3, 6, 1);选择串/阵列

一个数组,我只是想选择正数,能够总结他们之间的其他人。

所以我写了这段代码,但是我对如何选择我只想对它们做某些事情的元素有点遗憾,比如总结它们。

$sum = implode(",", $arr); 

    for($i = 0; $i <= strlen($sum); $i++) { 
    if($i <= 0) { 
    } else { 
     return explode(",", array_sum($i)); 
    } 
} 
} 
+0

你说的 “选择” 是什么意思? – GrumpyCrouton

+0

使用'array_filter',不需要使用显式循环:http://php.net/manual/en/function.array-filter.php –

+0

@GrumpyCrouton我编辑了标题。对不起,我只想在数组中只选择我想要的元素。并将其他人汇总在一起。 –

回答

4

使用array_fliter过滤值,array_sum对数组求和。

array_sum(array_filter($array, function($v){return $v>0;}); 
+0

谢谢你的回答。但我无法弄清楚这是如何工作的。 我有$ arr = array(2,-3,6,1); –

+0

在代码中使用$ arr作为$数组。 –

0

使用array_filter用回调函数如下图所示:

<?php 
    $arr = array(2, -3, 6, 1); 
    function positive($a){ 
     if($a > 0){ 
      return $a; 
     } 

    } 
    $newArr = array_sum(array_filter($arr, "positive")); 
    print_r($newArr); 
?> 
0

使用array_reduce

$arr = array(2, -3, 6, 1); 

$result = array_reduce($arr, function($c, $i) { return $i > 0 ? $c + $i : $c; }); 

echo $result;