[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: массивы
Stasonix
Как прокрутить массив заданное кол-во раз по часовой допустим, есть

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
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.