首页 > 解决方案 > 从数组 PHP 中过滤掉负整数

问题描述

我正在尝试从以下数组中删除所有负整数:

$array = array([-122,121,-124,124,-121,122,-122,124,-121,124,-122,125,-121,121,-123,122,-124,120]);

我尝试了以下方法,但它不起作用,因为我不太了解它是如何array_filter工作的:

function positive($var) {
  if ($var >= 0) {
    return $var;
  }
}

print_r(array_filter($array, positive($var)));

我如何将每个值发送到positive函数?或者有没有更好的方法来做到这一点?array_walk或者array_map也许?

标签: phparray-filter

解决方案


PHP 文档指出:

数组 array_filter ( 数组 $array [, 可调用 $callback [, int $flag = 0 ]] )

遍历数组中的每个值,将它们传递给回调函数。如果回调函数返回 true,则将数组中的当前值返回到结果数组中。数组键被保留。

使用测试正值的回调:

$array = [-122,121,-124,124,-121,122,-122,124,-121,124,-122,125,-121,121,-123,122,-124,120];
$positive_integers = array_filter($array, function($value) {
    return $value > 0;
});

推荐阅读