Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 仅选择字符串/数组中所需的元素_Php_Arrays - Fatal编程技术网

Php 仅选择字符串/数组中所需的元素

Php 仅选择字符串/数组中所需的元素,php,arrays,Php,Arrays,我有这样一个数组$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)); } } }

我有这样一个数组
$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));
  }
 }
}
$sum=内爆(“,”,$arr);

对于($i=0;$i使用array\u fliter过滤值,使用array\u sum对数组求和

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

使用array\u fliter筛选值,使用array\u sum对数组求和

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

将数组_过滤器与回调函数一起使用,如下所示:

<?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);
?>

使用带有回调函数的数组过滤器,如下所示:

<?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);
?>

使用
array\u reduce

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

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

echo $result;

使用
数组\u reduce

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

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

echo $result;

“选择”是什么意思?使用
array\u filter
,无需使用显式循环:@GrumpyCrouton我编辑了标题。很抱歉,我只想在数组中选择我想要的元素。并将其他元素相加。你说的“选择”是什么意思?使用
array\u filter
,无需使用显式循环:@GrumpyCrouton我编辑了标题。很抱歉,我只想能够在数组中选择我想要的元素。并将其他元素相加。谢谢你的回答。但我不知道这是如何工作的。我有$arr=array(2,-3,6,1);谢谢你的回答。但我不知道这是怎么回事。我有$arr=array(2,-3,6,1);