2015-03-19 29 views
0

我有分隔的数值只是一个像这样的字符串:如何截断PHP中的分隔字符串?

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

根据不同的情况下,该字符串可能只有1个值,15个值,最多值100秒一路,分隔的所有管道。

我需要计数(并保留/回显)前10个值,然后截断其他所有内容。

我一直在寻找所有的PHP字符串函数,但一直没有找到一个方法直接处理这个问题。

+0

可以使用爆炸功能和使用foreach循环打印值高达10 – 2015-03-19 04:19:04

回答

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); 
+0

这是完美的!谢谢。正是我在找什么。很显然,我在错误的地方寻找解决方案...... – 2015-03-19 04:34:39

0

使用PHP爆炸功能

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

这将打破整个字符串到一个数组。 EG:ARR [0] = 5,ARR [1] = 2288 .....

0

我会使用爆炸到串分离成一个数组然后回声第一十个结果这样

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