清除一系列'空'元素

时间:2015-01-31 19:35:57

标签: php arrays

我有以下文字:

NOTEU START

#Line1  #

#Line2  #

#Line3  #

#Line4  #

NOTEU END

我在每磅标志处爆炸文字:

$noteText = explode("#", $message);

制作一个数组:

  ( [0] => [1] => Line1 [2] => [3] => Line2 [4] => [5] => Line3 [6] => [7] => Line4 [8] => )

我在数组中得到空元素,表示两个连续英镑符号之间的空格。

我的最终目标是将每一行(英镑符号内的文本)拆分成一个数组。

这可以通过删除这些空数组元素来实现,但我似乎无法删除它们,我已尝试过:

print_r(array_filter($noteText));

foreach($noteText as $key => $val) {
   if ($val == "") unset($noteText[$key]);
}

这对删除这些空白空间没有影响。

2 个答案:

答案 0 :(得分:2)

尝试使用array_map()trim()array_filter()的组合删除空格,然后删除空元素。

$nodetext= array_filter(array_map("trim", $nodetext));

同时使用array_map()trim()将获取仅为空格的元素并将其转换为空字符串。没有回调的array_filter()将从数组中删除空数组值。

答案 1 :(得分:2)

通常行由\ r \ n [windows] \ n [linux]或\ r [mac]分隔,以便您可以使用它。 如果这些换行符没有使用这些换行符进行格式化,则可以使用正则表达式轻松地将其展开 -

$text ="
#Line1  #

#Line2  #

#Line3  #

#Line4  #
";
preg_match_all("!\#(.*)  #!",$text,$matches);

var_dump($matches[1]);