我有一个新的行字符字符串。我想把这个字符串转换成一个数组,对于每一个新行,在数组中跳转一个索引位置。
如果字符串是:
My text1
My text2
My text3
我想要的结果是:
Array
(
[0] => My text1
[1] => My text2
[2] => My text3
)
我有一个新的行字符字符串。我想把这个字符串转换成一个数组,对于每一个新行,在数组中跳转一个索引位置。
如果字符串是:
My text1
My text2
My text3
我想要的结果是:
Array
(
[0] => My text1
[1] => My text2
[2] => My text3
)
当前回答
对于任何试图在crontab中显示cronjob并且不知道如何分隔每行的人,请使用爆炸:
$output = shell_exec('crontab -l');
$cron_array = explode(chr(10),$output);
使用'\n'似乎不工作,但chr(10)工作得很好:D
希望这能让一些人少头疼。
其他回答
只使用'base'包也是简单情况下的解决方案:
> s <- "a\nb\rc\r\nd"
> l <- strsplit(s,"\r\n|\n|\r")
> l # the whole list...
[[1]]
[1] "a" "b" "c" "d"
> l[[1]][1] # ... or individual elements
[1] "a"
> l[[1]][2]
[1] "b"
> fun <- function(x) c('Line content:', x) # handle as you wish
> lapply(unlist(l), fun)
<anti-answer>
正如其他答案所指定的,一定要使用爆炸而不是分裂,因为从PHP 5.3.0开始,分裂已被弃用。例如,以下不是你想要的方式:
$your_array = split(chr(10), $your_string);
LF = "\n" = chr(10), CR = "\r" = chr(13)
</anti-answer>
这就是我的方式:
$lines = preg_split('/[\r\n]+/', $db_text, NULL, PREG_SPLIT_NO_EMPTY);
这也将跳过所有空行。
我一直都很成功地使用这个方法:
$array = preg_split("/\r\n|\n|\r/", $string);
(更新为最后的\r,谢谢@LobsterMan)
大卫有一个伟大的方向,但它错过了\r。这招对我很管用:
$array = preg_split("/(\r\n|\n|\r)/", $string);