PHP:'旋转'一个数组?

Dyl*_*lan 17 php arrays rotation shift

是否有可能在PHP中轻松"旋转"一个数组?

像这样:1,2,3,4 - > 2,3,4,1

是否有某种内置的PHP函数?

Wh1*_*Ck5 22

  $numbers = array(1,2,3,4);
  array_push($numbers, array_shift($numbers));
  print_r($numbers);
Run Code Online (Sandbox Code Playgroud)

产量

Array
(
    [0] => 2
    [1] => 3
    [2] => 4
    [3] => 1
)
Run Code Online (Sandbox Code Playgroud)


Cam*_*son 22

大多数当前答案都是正确的,但前提是你不关心你的指数:

$arr = array('foo' => 'bar', 'baz' => 'qux', 'wibble' => 'wobble');
array_push($arr, array_shift($arr));
print_r($arr);
Run Code Online (Sandbox Code Playgroud)

输出:

Array
(
    [baz] => qux
    [wibble] => wobble
    [0] => bar
)
Run Code Online (Sandbox Code Playgroud)

要保留您的指数,您可以执行以下操作:

$arr = array('foo' => 'bar', 'baz' => 'qux', 'wibble' => 'wobble');

$keys = array_keys($arr);
$val = $arr[$keys[0]];
unset($arr[$keys[0]]);
$arr[$keys[0]] = $val;

print_r($arr);
Run Code Online (Sandbox Code Playgroud)

输出:

Array
(
    [baz] => qux
    [wibble] => wobble
    [foo] => bar
)
Run Code Online (Sandbox Code Playgroud)

也许有人可以比我的四线方法更简洁地进行旋转,但无论如何这都适用.


bru*_*azi 6

它非常简单,可以通过多种方式完成.例:

$array   = array( 'a', 'b', 'c' );
$array[] = array_shift( $array );
Run Code Online (Sandbox Code Playgroud)