使用array_map从数组中移除元素
- 论坛
- 使用array_map从数组中移除元素
10 浏览
使用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_filter
、array_map
或其他方式实现吗?我不想用for循环等遍历数组。