我有一个这样的数组:
$arr = [
'red',
' ',
'blue',
' ',
'green',
' ',
'white',
' ',
'black',
' '
];
我正在尝试删除所有包含空格的项目。
这是预期的结果:
[
'red',
'blue',
'green',
'white',
'black'
]
如果这些空白项是空的,我就可以这样做。所以我可以使用$arr = array_filter($arr);
。但在本例中,因为有空格而不是空白,所以array_filter()
没有用。有没有办法做到这一点?
3条答案
按热度按时间lc8prwob1#
您可以使用
trim
将其与array_map
耦合:这不会重新索引键,如果你愿意,你可以使用
array_values
:8nuwlpux2#
array_filter接受回调函数。你想做什么都行。
HTH
pprl5pva3#
所描述的任务根本不是关于“修剪”;它是关于删除只包含空格的元素。
我将扩展示例数据,以暴露我的建议(在过滤时不改变原始值)与早期发布的答案之间的潜在差异。
非正则表达式用于确定不全是空格的字符串。
一个正则表达式,它实际上删除了所有由一个或多个空格字符组成的元素(包括制表符,新行等)。
两个输出:(Demo)
在修剪后使用
array_filter()
的默认行为(如Kevin的回答所示)有可能改变原始值并删 debugging 误值(如零)。