【发布时间】:2017-03-25 18:36:27
【问题描述】:
我正在尝试使用以下函数从空值中清除数组:
function remove_empty_cells($data)
{
$findthis = array("/\r\n/u", "/\n/u", "/\r/u", "/\s+/u", "~\x{00a0}~");
for($i=0; $i<count($data); $i++)
{
$data[$i] = preg_replace($findthis, " ", $data[$i]);
$data[$i] = htmlspecialchars_decode(htmlspecialchars($data[$i], ENT_SUBSTITUTE, 'UTF-8'));
if (empty($data[$i]) ||
mb_strlen($data[$i]) < strlen($data[$i]) ||
is_null($data[$i]) ||
$data[$i] = " " ||
$data[$i] = "" ||
$data[$i] == "0")
{
array_splice($data, $i, 1);
};//end if
};//end for
return $data;
};//end func
空值不会消失,我无法识别它们..
数据:
array (
0 => '
',
1 => 'BEGIN:VCARD
',
2 => '
',
3 => '
',
4 => '
',
5 => '
',
6 => '
',
7 => 'VERSION:2.1
',
... 可能是一些编码问题或什么..它看起来不像多字节字符.. 我得到的结果是:
array (
0 => 'BEGIN:VCARD
',
1 => '
',
2 => '
',
3 => 'VERSION:2.1
',
...
【问题讨论】:
-
请发布您的数据
-
@LeoTahk 检查我在下面提供的解决方案
-
是的,修剪工作,感谢您指出。标记为已回答。简单的 array_filter 没有效果。
标签: php