如何删除仅包含空格的数组元素?

时间:2016-06-16 23:01:33

标签: php arrays

我有一个这样的数组:

$arr = array (0 => 'red',
              1 => '   ',
              2 => 'blue',
              3 => '       ',
              4 => 'green',
              5 => '  ',
              6 => 'white',
              7 => '    ',
              8 => 'black',
              9 => '           ' );

我正在尝试删除所有只包含空格的项目。所以这是预期的结果:

$arr = array (0 => 'red',
              1 => 'blue',
              2 => 'green',
              3 => 'white',
              4 => 'black');

如果那些空白项目为空,我可以这样做。所以我可以使用$arr = array_filter($arr);。但在这种情况下,因为有空格而不是空格,array_filter()并不有用。有没有办法做到这一点?

2 个答案:

答案 0 :(得分:4)

您可以使用array_map

将其与trim结合使用
$arr = array_filter(array_map('trim', $arr));

这不会重新索引键,如果你想要,你可以使用array_values

$arr = array_values(array_filter(array_map('trim', $arr)));

答案 1 :(得分:2)

array_filter采用回调函数。你可以做任何你想做的事。

array_filter($arr, function($v, $k) {
    return trim($v) !== '';
}, ARRAY_FILTER_USE_BOTH);

HTH