Сначала: извиняюсь за мой не очень хороший английский, я 17-летний немец; -)
Я учусь на веб-разработчике и только что наткнулся на проблему:
Мне нужно переставить индексы массива.Массив в основном такой:
@array = ( 'a', 'b', 'c' );
Но: он изменяется динамически, поэтому он не всегда имеет 3 элемента, но что-то более 20. Теперь мне нужно сделать так:
@array = ( 'c', 'a', 'b' );
Итак, я подумал, что мне просто нужно сделать что-то подобное (в цикле for, который повторяется один раз для каждого элемента в массиве и увеличивает счетчик $)
my $last = $array[$#array];
for($#array)
{
$array[$counter] = $array[$counter + 1];
unshift(@array, $last);
pop(@array);
$counter++;
}
Я думалон сделал бы это:
Для каждого элемента в массиве (скажем, мы находимся в элементе 0): Установить элемент index = element index + 1;затем добавьте последний массив в начало и удалите теперь «настоящий» последний массив (который является просто дубликатом начала сейчас).Затем добавьте 1 к счетчику и переделайте это для массива.Но на самом деле это не то, что я хочу.
Ну, это была моя попытка "новичка", так что, опять же, это то, что мне просто нужно:
Мне нужно "переместить" все индексы элементов массива +1 и отрезатьпоследний, чтобы быть в начале.Возможно, более сложная вещь заключается в том, что длина массивов просто переменная.
В другой форме: мне нужно повернуть
( 'a', 'b', 'c', 'd', ... 'z');
на
( 'z', 'a', 'b', 'c', ... 'y' );
Я не знаю, как поступить, и буду признателен за любую помощь.
Спасибо: -)
Уже спасибо за все ваши ответы!Я забыл сказать, что я не могу проверить это до понедельника, потому что я больше не на работе, и у меня нет источника со мной прямо сейчас.Но спасибо, я уверен, что хотя бы одно из ваших решений будет работать!