2010-11-22 49 views
0

我有一個PHP問題,我有一串數字:從字符串中獲取X字符與PHP繞回

ie/1,2,3,4,5,6,7,8,9 .. .... X

我知道的第一個數字,並有長期創建一個字符串X,使其環繞

例如,如果我的字符串是1,2,3,4,5和我的第一個數字是4 - 我需要返回字符串:

4,5,1,2,3

我想創建一個函數來實現這一點 - 任何幫助將是偉大的!

謝謝。

+2

家庭作業,我認爲? – cdhowie 2010-11-22 16:30:35

+0

我真的不明白這個 – 2010-11-22 16:30:41

回答

2
<?php 
function MyWrap($string, $first) 
{ 
    $splitHere = strpos($string, $first); 
    return rtrim(substr($string, $splitHere).','.substr($string, 0, $splitHere), ','); 
} 

echo MyWrap('1,2,3,4,5', '4'); 
?> 

輸出:

4,5,1,2,3 
0
function wrapAroundNeedle($myString, $myNeedle) 
{ 
    $index = strrpos($myString, $myNeedle); 
    return substr($myString, $index).",".substr($myString, 0, $index - 1); 
} 

如何推出自己的。需要注意的是strrpos只允許$針單個字符在PHP 4

string substr (string $string , int $start [, int $length ]) 

int strrpos (string $haystack , string $needle [, int $offset = 0 ]) 

http://php.net/manual/en/function.substr.php

http://php.net/manual/en/function.strrpos.php

0
$pos = strpos($string,$first_number); 
return substr($s,$pos).','.substr($s,0,$pos); 
0

我相信我明白你需要什麼 - 試試這個:

function numsWrap($firstNumber, $total) { 
    $newStr = ""; 

    $inc = $firstNumber; 
    for($i = 0; $i < $total+1; $i++) { 
    if($i == 0) { 
     $newStr .= $inc; 
    } else { 
     if($inc == $total) { 
    $newStr .= "," . $inc; 

    $inc = 0; 
     } else { 
    $newStr .= "," . $inc; 
     } 
    } 

    $inc++; 
    } 

    return $newStr; 
} 

用法:

echo numsWrap(5, 10); 
5,6,7,8,9,10,1,2,3,4,5