2010-11-22 3 views
0

Je wraparound un problème de PHP où j'ai une série de chiffres:obtenir des caractères X de chaîne avec php avec

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

Je sais que le premier numéro et doivent créer une chaîne X longue pour qu'elle enroule autour

par exemple, si ma chaîne est 1,2,3,4,5 et mon premier numéro est 4 - je dois retourner la chaîne:

4,5,1,2,3

Je voudrais créer une fonction pour y parvenir - toute aide serait géniale!

Merci.

+2

devoirs, je suppose? – cdhowie

+0

Je ne comprends pas vraiment ce –

+0

sont les numéros dans la chaîne d'origine toujours dans l'ordre séquentiel? – stillstanding

Répondre

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'); 
?> 

Sortie:

4,5,1,2,3 
+0

IMPRESSIONNANT! exactement ce que j'étais après - Cheers! – Simon

+1

@ Simon, mais vous devriez d'abord essayer vous-même et voir ce que vous pouvez trouver. – shamittomar

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

Comment rouler le vôtre. Notez que strrpos ne permet des caractères uniques pour $ needle en 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

Je crois que je comprends ce que vous avez besoin - essayez ceci:

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

Utilisation:

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