2017-07-18 67 views
0

在將某個單詞放在同一個字符串的末尾之前,如何切割一部分字符串?如何將前導子字符串移動到字符串結尾?

例如:

$data = '1.jpg,2.jpg,3.jpg,4.jpg,5.jpg,6.jpg,7.jpg,'; 

我希望把所有4.jpg,前的字符串是這樣結尾:

$data = '4.jpg,5.jpg,6.jpg,7.jpg,1.jpg,2.jpg,3.jpg,'; 
+1

在[所以]你應該嘗試**自己寫代碼**。後** [做更多的研究](//meta.stackoverflow.com/questions/261592)**如果你有問題,你可以**發佈你已經嘗試**與清楚的解釋是什麼是'工作**並提供[** Minimal,Complete和Verifiable示例**](// stackoverflow.com/help/mcve)。我建議閱讀[問]一個好問題和[完美問題](http://codeblog.jonskeet.uk/2010/08/29/writing-the-perfect-question/)。另外,一定要參加[遊覽]並閱讀[this](// meta.stackoverflow.com/questions/347937/)**。 –

+0

我試過str_replace();和chop(); –

回答

2

這裏的東西你可以試試。

<?php 

$data = '1.jpg,2.jpg,3.jpg,4.jpg,5.jpg,6.jpg,7.jpg,'; 
$cut_name = '4.jpg'; //splice from #4 


$data = explode(',', $data); 
$cut_from = array_search($cut_name, $data); 
array_pop($data); 

$removed = array_splice($data, 0, $cut_from); 

$data = implode(',', array_merge($data, $removed)); 

echo $data . ','; 
+0

這很好,但4.jpg,5.jpg,...只是一個例子,每次我都會有其他的文件名。 –

+0

它應該適用於任何文件名。 '$ cut_from'表示**位置**,而不是文件名。 –

+0

,但我也不知道哪個位置是分隔符。 –

1

您還可以使用一些像這樣:

$data = '1.jpg,2.jpg,3.jpg,4.jpg,5.jpg,6.jpg,7.jpg'; 

function reorder_string($string,$separator){ 

    $splited = explode($separator,$string); 

    //Explanations: 
    //$splited[0] = "1.jpg,2.jpg,3.jpg," 
    //$splited[1] = "5.jpg,6.jpg,7.jpg" 
    //$separator = "4.jpg," 

    //finally reorder 
    return $separator.$splited[1].",".$splited[0]; 
} 

echo reorder_string($data,"4.jpg,"); 
0

這是太容易了與此兩個功能,一個班輪!

代碼:(Demo

$data = '1.jpg,2.jpg,3.jpg,4.jpg,5.jpg,6.jpg,7.jpg,'; 
$new_leader='4.jpg'; 

echo strstr($data,$new_leader),strstr($data,$new_leader,true); 

輸出:

4.jpg,5.jpg,6.jpg,7.jpg,1.jpg,2.jpg,3.jpg, 

*注,可以的,如果你改變2.jpg44.jpg由於意外串匹配休息。

相關問題