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


How to truncate a delimited string in PHP?

我有一个由分隔的数值组成的字符串,如下所示:

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

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

我需要对前10个值进行计数(并保留/echo),然后截断其他所有值。

我一直在研究所有的PHP字符串函数,但一直未能找到直接处理它的方法。

使用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);

使用PHP分解函数

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

它将把整个字符串分解成一个数组。例如:arr[0]=5,arr[1]=2288。。。。。

我会使用爆炸将字符串分隔成一个数组,然后像这个一样回显前十个结果

$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];
}

请尝试以下代码

$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;