Php 如何从数组中删除空白字符串?
我从一个网站上抓取了一个格式非常糟糕的字符串,并将其转换为数组。现在tt包含一些空字符串或仅包含空格字符串,我想删除这些字符串,但它不起作用。 我已经尝试应用过滤器($array)但没有成功。我还尝试手动迭代和过滤这些元素,但根本不起作用。似乎我无法访问以下元素:Php 如何从数组中删除空白字符串?,php,arrays,string,Php,Arrays,String,我从一个网站上抓取了一个格式非常糟糕的字符串,并将其转换为数组。现在tt包含一些空字符串或仅包含空格字符串,我想删除这些字符串,但它不起作用。 我已经尝试应用过滤器($array)但没有成功。我还尝试手动迭代和过滤这些元素,但根本不起作用。似乎我无法访问以下元素: foreach($array as $elem){ if($elem == " " || $elem == "") echo "Want access this: " . elem . "<br&g
foreach($array as $elem){
if($elem == " " || $elem == "")
echo "Want access this: " . elem . "<br>";
//No Output
}
编辑:感谢您的提示,但没有任何效果,因为问题是空白字符串的长度不同。根据前面的回答,我现在试图用preg_match(“/\s{2,}/”,$val)捕捉这些元素但是我抓不到他们。在在线测试仪中
它很好用。有什么想法吗?你可以使用数组过滤器
function odd($var)
{
return(trim($var) != "");
}
$array = array(1, " ", 2, " ");
print_r(array_filter($array, "odd"));
问候
$filtered = array_filter($array, function($v,$k) {
return $v !== "";
}, ARRAY_FILTER_USE_BOTH);
首先请参见:
if($elem==“”| |$elem==“”)
对我来说,似乎你写了两次相同的比较
关于您的阵列清理,您可以尝试以下方法:
foreach ($array as $key => $val) {
if (preg_match('/^\s*$/', $val) OR $val === NULL) {
unset($array[$key]);
}
}
$array=数组值($array)
该代码从数组中删除NULL
、不包含任何内容或仅包含空格等的条目。
由于您的数组已编制索引,因此我添加了最后一行,该行使用新的连续索引再次构建数组,以便在其中没有删除条目的漏洞
希望有帮助。如前所述,使用
array\u filter()
和trim()
过滤掉空字符串或仅包含空格的元素:
$filtered = array_filter($array, function ($element) {
return is_string($element) && '' !== trim($element);
});
有关参考,请参阅:
java
这是php
:)“
不是空字符串。而且string(23)“
很奇怪。在“
中应该有23个
字符,但只有一个。同样对于string(42)“21.06.2017”
a.s.o.总是留下解释-没有人从复制和粘贴中学习:pit在文档中你真的认为人们在复制和粘贴后会用谷歌搜索它吗?始终添加一个参考链接并进行解释-获得投票的简单方法:)不用担心:):这是一个带有数组过滤器的解决方案吗?
$filtered = array_filter($array, function ($element) {
return is_string($element) && '' !== trim($element);
});