在PHP中拆分字符串

9
$string = "|1|2|3|4|";
$array = explode("|", $string, -1); 

foreach ($array as $part) {
    echo $part."-";
}

我在使用explode函数时使用了-1来跳过字符串中的最后一个"|",但如果我还想跳过第一个"|"怎么办?
4个回答

11
你可以使用 trim 函数来去除字符串的开头和结尾的|,然后再使用 explode 函数。
$string = "|1|2|3|4|";
$array = explode("|", trim($string,'|')); 

2
+1 对于一个非常简单的解决方案。也许你可以告诉丹尼尔你的代码是如何工作的。 :) - kazinix

4

preg_split()及其PREG_SPLIT_NO_EMPTY选项可以满足您的需求。

它的优点在于:即使在字符串中间,它也会跳过空白部分,而不仅仅是在开头或结尾。


以下代码片段:

$string = "|1|2|3|4|";
$parts = preg_split('/\|/', $string, -1, PREG_SPLIT_NO_EMPTY);
var_dump($parts);


将会给你这个结果数组:

array
  0 => string '1' (length=1)
  1 => string '2' (length=1)
  2 => string '3' (length=1)
  3 => string '4' (length=1)

0

先取一个子字符串,然后再分割。 http://codepad.org/4CLZqkle

<?php

$string = "|1|2|3|4|";
$string = substr($string,1,-1);
$array = explode("|", $string); 

foreach ($array as $part) {
    echo $part."-";
}
echo PHP_EOL ;

/* or use implode to join */
echo implode("-",$array);

?>

0
您可以使用array_shift()从数组中删除第一个元素。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接