2017-07-18 215 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由于意外串匹配休息。

相关问题