使用array_map从数组中移除元素

10 浏览
0 Comments

使用array_map从数组中移除元素

我使用array_map来验证每个数组元素。如果它不能通过验证,应该从初始数组中删除:

$array = (123, 456);
$array = array_map(function ($e){
   if( !is_numeric($e) ){
      unset($e); 
      return; //这样我就得到了一个NULL元素
   }
   $return $e;
}, $array);

输出:array(3) { [0]=> int(523) [1]=> int(555) [2]=> NULL }

当然,我可以在最后添加类似以下的内容:

$array = array_filter($array, 'strlen');

但是在array_map中有没有办法做到这一点呢?

更新

关于这个问题,我忘记提到一个情况。如果一个元素未通过验证,我想删除整个数组。这可以通过array_filterarray_map或其他方式实现吗?我不想用for循环等遍历数组。

0