PHP如何移除数组中包含任意数量空格的元素?
如何在PHP中移除数组里包含任意数量空格的元素?
我懂你的困扰——默认的array_filter($array)确实只能过滤掉空字符串和单个空格的元素,碰到多个空格的元素就束手无策了。不过别慌,我们只需要给array_filter()传一个自定义回调函数,就能轻松搞定这个问题。
解决方案代码
先看你的输入数组:
$array = [ "Intermarché", " ", "promotion", " ", " " ];
用带自定义回调的array_filter()处理:
// 过滤掉所有仅包含空白字符的元素 $filteredArray = array_filter($array, function($item) { // 先移除元素首尾的所有空白,再判断是否为空字符串 return trim($item) !== ''; }); // 可选:如果需要重置数组索引(过滤后索引会不连续) $filteredArray = array_values($filteredArray);
代码解释
trim($item)会移除字符串首尾的所有空白字符,包括多个空格、制表符、换行符等,完美覆盖你遇到的多空格场景。- 回调函数里,当
trim($item)不等于空字符串时,返回true,这个元素就会被保留;反之则被过滤掉。 - 最后用
array_values()是因为array_filter()不会自动重置数组索引,如果你需要连续的0开始的索引,加上这一步就可以了。
预期输出
处理后的数组就是你想要的结果:
Array ( [0] => Intermarché [1] => promotion )
如果你的数组里还有其他特殊空白(比如制表符),这个方法也能一并处理,适用性很强。
内容的提问来源于stack exchange,提问作者VinoCoder
相关产品推荐
相关产品推荐

