stack stack - 5 months ago 10
PHP Question

How to remove array elements that are containing only white spaces?

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?

Answer

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)));