Array reverse: примеры (PHP)
array_reverse(array $array, bool $preserve_keys = false): arrayОписание функции array_reverse
Функция array_reverse возвращает новый массив, элементы которого расположены в порядке, обратном исходному массиву. Эта функция часто применяется для изменения последовательности данных без модификации начального массива.
Функция принимает два параметра:
- array - обязательный аргумент, исходный массив для обработки.
- preserve_keys - необязательный аргумент логического типа. При значении
trueчисловые ключи сохраняются, строковые ключи всегда остаются неизменными. Значение по умолчанию -false.
Базовые примеры использования
$array = [10, 20, 30, 40];
$result = array_reverse($array);
print_r($result);Array
(
[0] => 40
[1] => 30
[2] => 20
[3] => 10
)$array = [10, 20, 30, 40];
$result = array_reverse($array, true);
print_r($result);Array
(
[3] => 40
[2] => 30
[1] => 20
[0] => 10
)$array = ['a' => 'apple', 'b' => 'banana', 'c' => 'cherry'];
$result = array_reverse($array);
print_r($result);Array
(
[c] => cherry
[b] => banana
[a] => apple
)Аналогичные функции в PHP
Функции rsort и arsort сортируют массив в обратном порядке, но изменяют исходный массив, в отличие от array_reverse. rsort используется для индексированных массивов, arsort - для ассоциативных с сохранением ключей.
Функция array_flip меняет местами ключи и значения, что иногда может использоваться для изменения порядка, но с другой логикой.
Распространенные ошибки
Функция не обрабатывает вложенные массивы рекурсивно.
$array = [1, [2, 3], 4];
$result = array_reverse($array);
print_r($result);Array
(
[0] => 4
[1] => Array
(
[0] => 2
[1] => 3
)
[2] => 1
)При preserve_keys = false числовые ключи сбрасываются, строковые - всегда сохраняются.
$array = [2 => 'a', 5 => 'b', 10 => 'c'];
$result = array_reverse($array);
print_r($result);Array
(
[0] => c
[1] => b
[2] => a
)Изменения в версиях PHP
В PHP 8.0 функция array_reverse не претерпела значительных изменений. Поведение функции остается стабильным с момента введения параметра preserve_keys в PHP 4.0.3.
Расширенные примеры применения
Извлечение последних N элементов с последующим разворотом.
$array = [1, 2, 3, 4, 5, 6];
$lastThree = array_slice($array, -3);
$reversed = array_reverse($lastThree);
print_r($reversed);Array
(
[0] => 6
[1] => 5
[2] => 4
)Функция корректно работает с массивами, содержащими объекты.
class Item {
public function __construct(public $value) {}
}
$array = [new Item('first'), new Item('second')];
$result = array_reverse($array);
print_r($result);Array
(
[0] => Item Object
(
[value] => second
)
[1] => Item Object
(
[value] => first
)
)Использование для обработки данных по принципу "последним пришел - первым ушел".
$queue = ['task1', 'task2', 'task3'];
$processingOrder = array_reverse($queue);
print_r($processingOrder);Array
(
[0] => task3
[1] => task2
[2] => task1
)Аналоги в других языках программирования
Array reverse в Python
В Python для разворота списка используется срез или функция reversed.
my_list = [10, 20, 30, 40]
reversed_list = my_list[::-1]
print(reversed_list)[40, 30, 20, 10]
Array reverse в Javascript
Метод reverse изменяет исходный массив. Для создания нового массива используется копирование.
let array = [10, 20, 30, 40];
let newArray = [...array].reverse();
console.log(newArray);[40, 30, 20, 10]
Array reverse в MySQL
В SQL нет прямой аналогии, но можно использовать ORDER BY ... DESC в запросах для обратной сортировки результатов.