2015-03-19 31 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;