2017-03-19 16 views
1

配列内の項目を指定された値だけ上下に循環させる方法を教えてください。例えば配列内の項目を指定された値で移動する

$value = 1; // circularly rotate by 1 
$array = array(1,2,3,4,5); 

// Should return 

array(2,3,4,5,1); 

ためにアレイ全体を円1 1により反時計回りに回転される端部に行き、2は、アレイ内の先頭の数になりました。私はこれを行うための信頼できる方法を見つけることができません。

+0

第1の要素を追加します'$ value'が2の場合はどうなりますか? – C2486

+0

値が2の場合、配列は(3,4,5,1,2) – ratdown

答えて

0

配列をシフトするためにあなたが移動したいどのように多くの項目の仕様、およびarray_shift()for -loopを使用してください。次いで、(本質的に最後の要素に最初の項目を移動させる)シフトアレイ

$shift = 2; // How many times you want to move it 
$output = array(1, 2, 3, 4, 5); 

for ($i = 0; $i < $shift; $i++) { 
    array_push($output , array_shift($output)); 
} 
print_r($output); // 3, 4, 5, 1, 2 

Live demo

参照

0

配列の末尾に値を追加するarray_push関数と、配列の最初の要素を削除して返す関数を組み合わせることができます(array_shift)。

<?php 

$value = 1; // circularly rotate by 1 
$array = array(1,2,3,4,5); 

while ($value) { 
    array_push($array, array_shift($array)); 
    $value--; 
} 

print_r($array); 

?> 
関連する問題