我有以下文字:
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]);
}
这对删除这些空白空间没有影响。
答案 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]);