문자열을 왼쪽 N 번 회전시키는 방법을 찾고 있습니다. 다음은 몇 가지 예는 다음과 같습니다PHP에서 문자열 N 번 회전
나는 그것을 2
시간을 회전하면 내가 그것을 회전하면 내가 cdefab
bcdefa
1
시간으로 회전하는 경우 문자열이 abcdef
- 을하자
3
시간이 필요합니다.defabc
- .
- .
- 문자열의 길이를 으로 변경하면 원래 문자열이 반환됩니다.
문자열을 왼쪽 N 번 회전시키는 방법을 찾고 있습니다. 다음은 몇 가지 예는 다음과 같습니다PHP에서 문자열 N 번 회전
나는 그것을 2
시간을 회전하면 내가 그것을 회전하면 내가 cdefab
bcdefa
1
시간으로 회전하는 경우 문자열이 abcdef
3
시간이 필요합니다. defabc
$rotated = substr($str, $n) . substr($str, 0, $n);
function rotate_string ($str, $n)
{
while ($n > 0)
{
$str = substr($str, 1) . substr($str, 0, 1);
$n--;
}
return $str;
}
가이에 대한 표준 기능이 없지만 쉽게 구현된다.
function rotate_left($s) {
return substr($s, 1) . $s[0];
}
function rotate_right($s) {
return substr($s, -1) . substr($s, 0, -1);
}
회전 할 문자 수에 대한 선택적 매개 변수를 추가하기 위해이 값을 확장 할 수 있습니다. 여기
관계없이 입력 스트링의 길이, 좌우 임의의 이동을 허용 한 변종이다
function str_shift($str, $len) {
$len = $len % strlen($str);
return substr($str, $len) . substr($str, 0, $len);
}
echo str_shift('abcdef', -2); // efabcd
echo str_shift('abcdef', 2); // cdefab
echo str_shift('abcdef', 11); // fabcde
사용 코드
<?php
$str = "helloworld" ;
$res = string_function($str,3) ;
print_r ($res) ;
function string_function ($str , $count)
{
$arr = str_split ($str);
for ($i=0; $i<$count ; $i++)
{
$element = array_pop ($arr) ;
array_unshift ($arr, $element) ;
}
$result=(implode ("",$arr)) ;
return $result;
}
?>
function rotate_string($str) {
for ($i=1; $i<strlen($str)+1;$i++) {
@$string .= substr($str , strlen($str)-$i , 1);
}
return $string;
}
echo rotate_string("string"); //gnirts
N 회전 할 수도 있습니다. 이런 식으로 문자열을.
$str = "Vijaysinh";
$arr1 = str_split($str);
$rotated = array();
$i=0;
foreach($arr1 as $a){
$t = $arr1[$i];
unset($arr1[$i]);
$rotated[] = $t.implode($arr1);
$arr1[$i] = $t;
$i++;
}
echo "<pre>";print_r($rotated);exit;
감사합니다. stereooforg. 이 작동합니다. – gameover
'$ n '이 문자열의 길이보다 큰 경우 작동하지 않겠습니까? – Svish
$ n> 문자열 길이 인 경우 원래 문자열을 반환합니다. – Gordon