如何删除仅包含空格的数组元素? [重复]

This question already has an answer here:

I have an array like this:

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

Well I'm trying to remove all items which are just containing white space(s). So this it expected result:

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

I can do that if those white spaces item be empty. So I can use $arr = array_filter($arr);. But in this case, because there is white spaces instead of nothing, array_filter() isn't useful. Is there any approach to do that?

</div>

You could just couple it with array_map using trim:

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

This doesn't reindex the keys though, if you want you could just use array_values:

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

array_filter takes a callback function. You can do whatever you want.

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

hth