我有一个这样的数组:
$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()
并不有用。有没有办法做到这一点?
答案 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