PHP: циклический сдвиг массива
То есть, из (1,2,3,4)
при циклическом сдвиге влево мы получим (2,3,4,1)
, а если сдвиг выполнялся вправо, то (4,1,2,3)
.
Не нужно изобретать велосипед и переписывать элементы "вручную", все нужные функции в PHP уже есть, соответственно, если массив имеет только числовые ключи (индексы элементов) или ключи не имеют для нас значения, то проблему решить совсем просто, вот функции, сдвигающие массив циклически влево и вправо на 1 элемент. Массив передаётся по ссылке, так что функция изменяет исходный массив-аргумент и не возвращает значений.
<?php function shift_in_left (&$arr) { $item = array_shift($arr); array_push ($arr,$item); } function shift_in_right (&$arr) { $item = array_pop($arr); array_unshift ($arr,$item); } $arr = array(1, 2, 3, 4); shift_in_left ($arr); print_r($arr); //сдвинуть влево и показать shift_in_right ($arr); //вернуть как было shift_in_right ($arr); print_r($arr); //сдвинуть вправо и показать ?>
14.02.2018, 12:32 [6944 просмотра]