找到给定字符串的循环移位

时间:2017-03-11 07:10:04

标签: php

我必须进行字符串的循环移位。例如,如果我有字符串" hihi" 我必须找到循环移位

"hihi" is 0th shift of "hihi"
"ihih" is 1st shift of "hihi"
"hihi" is 2nd 
"ihih" is 3rd

在这种情况下" hihi"重复两次,因此有两次循环移位。

有人可以帮助我。

1 个答案:

答案 0 :(得分:2)

你可以组合数组移位和数组到字符串操作:

function shift($string) {
    $arr = str_split($string);
    $head = array_shift($arr);
    array_push($arr,$head); 
    return implode($arr);
}   

$str = "hihi";
$shifts = strlen($str); //n shifts (incl. original)
for ($i = 0;$i < $shifts;$i++) {
     echo $str.PHP_EOL;
     $str = shift($str);  
}

http://sandbox.onlinephpfunctions.com/code/49e5ef01f3cc49db7c353f8ab8d74322375c4d22

上查看