2017-01-13 101 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;