如何在PHP中截断分隔的字符串?

时间:2015-03-19 04:16:48

标签: php regex string

我有一串分隔的数值,如下所示:

5|2288|502|4208|55|23217|235|10|3845|19053|1885|61|324|9004| ...etc.

根据具体情况,字符串可能只有1个值,15个值,一直到100个值,所有管道都是分隔的。

我需要计算(并保持/回显)前10个值并在此之后截断其他所有值。

我一直在查看所有PHP字符串函数,但是找不到直接处理它的方法是不成功的。

4 个答案:

答案 0 :(得分:3)

使用explode()将元素分隔成数组,然后您可以将前10个切片,并implode()将它们分开以创建新字符串。

$arr = "5|2288|502|4208|55|23217|235|10|3845|19053|1885|61|324|9004";
$a = explode ('|',$arr);
$b = array_slice($a,0,10);
$c = implode('|', $b);

答案 1 :(得分:0)

使用PHP爆炸功能

$arr = explode("|",$str);

它会将完整的字符串分解为数组。 EG:arr [0] = 5,arr [1] = 2288 .....

答案 2 :(得分:0)

我会使用explode将字符串分成数组,然后像这样回显前10个结果

$string = "5|2288|502|4208|55|23217|235|10|3845|19053|1885|61|324|9004";

$arr = explode("|", $string);

for($i = 0; $i < 10; $i++){
    echo $arr[$i];
}

答案 3 :(得分:0)

请尝试以下代码

$str = '5|2288|502|4208|55|23217|235|10|3845|19053|1885|61|324';


$arrayString = explode('|', $str);
$cnt = 0;
$finalVar = '';
foreach ($arrayString as $data) {
    if ($cnt > 10) {
        break;
    }

    $finalVar .= $data . '|';
    $cnt++;
}
$finalVar = rtrim($finalVar, '|');
echo $finalVar;