0 , 1 , 2 , 3 , 4 , 5 а на выходе получим 5 , 1 , 2 , 3 , 4 , 0, прокрутить один раз не сложно, а вот как заданное кол-во раз? Вот что у меня пока получилось, к сожалению результат не удовлетворительный, что работает не так?
$arr = [ 0, 1 , 2 , 3, 4 , 5 ];
$pop = array_pop($arr);
$arr = array_start_push($arr,$pop);
var_dump($arr);
// array(6) { [0]=> int(5) [1]=> int(0) [2]=> int(1) [3]=> int(2) [4]=> int(3) [5]=> int(4) }
function array_start_push($array, $element){
return array_merge(array($element), $array);
}
function cycle( array $arr_in, $steps ){
for ($st = 0; $st <= $steps; $st++) {
$pop = array_pop($arr_in);
$arr_in = array_start_push($arr_in,$pop);
}
return $arr_in;
}
$cycled = cycle($arr,1);
echo "<pre>";
var_dump($cycled);
/* array(6) {
[0]=>
int(3)
[1]=>
int(4)
[2]=>
int(5)
[3]=>
int(0)
[4]=>
int(1)
[5]=>
int(2)
}
*/
Спустя 1 час, 9 минут, 40 секунд (18.06.2012 - 13:41) Zzepish написал(а):
$arr=array(0,1,2,3,4,5);
for($g=0;$g<=100500;$g++){
for($i=--count($arr);$i>=0;--$i){
echo $arr[$i];
}}
Не?
Спустя 29 минут, 3 секунды (18.06.2012 - 14:10) Placido написал(а):
$a = array(1,2,3,4,5,6,7,8,9);
$i = 4;//количество перемещений
for( ; $i > 0; --$i)
{
array_unshift($a, array_pop($a));
}
print_r($a);//6,7,8,9,1,2,3,4,5