Как получить последний элемент массива в PHP
Имеется много способов извлечь последний элемент массива в PHP скрипте. Они различаются своим воздействием на массив (могут удалять извлечённый элемент, либо сдвигать указатель), а также своей производительностью.
Вариант 1
Начиная с PHP 7.3 наконец-то добавлена специальная функция, которая получает последний ключ массива, это функция array_key_last.
Обратите внимание, что извлекается не последний элемент массива, а именно последний ключ, поэтому для получения самого последнего члена массива эту функцию нужно использовать следующим образом:
$x = $array[array_key_last($array)];
Бенчмарки производительности показывают, что это самый быстрый вариант, поэтому рекомендуется использовать именно его.
Поскольку PHP 7.3 на момент написания является совсем недавним стабильным релизом, то эта версия доступна ещё не на всех серверах. Для достижения совместимости, рекомендуется использовать следующий код:
if (! function_exists("array_key_last")) < function array_key_last($array) < if (!is_array($array) || empty($array)) < return NULL; >return array_keys($array)[count($array)-1]; > >
Этот код проверяет, доступна ли функция array_key_last. Если эта функция недоступна, то создаётся пользовательская функция с таким же именем, которая выполняет это же самое действие. Результатом этого будет то, что на PHP версии 7.3 и более поздних будет использоваться оригинальная функция array_key_last, а на более старых версиях будет задействована пользовательская функция array_key_last.
Рассмотрим ещё варианты, которые подойдут для более старых версий PHP.
Некоторые из рассмотренных вариантов могут показаться излишне усложнёнными, но это сделано для того, чтобы убрать воздействие на массив. К примеру, нужное действие (получение последнего элемента массива) может выполнять функция array_pop, но она не используется сама по себе (хотя применяется в некоторых рассмотренных конструкциях), поскольку в результате её действия удаляется извлекаемый элемент.
Вариант 2
$x = array_values(array_slice($array, -1))[0];
Вариант 3
$x = array_slice($array, -1)[0];
Получить последний элемент массива в PHP
В этом посте мы обсудим, как получить последний элемент массива (не удаляя его) в PHP.
1. Использование end() функция
Вы можете вызвать end() функция для получения значения в конце массива. Он возвращает значение, присутствующее в конце массива, и false если массив пуст.
$array = array ( ‘One’ = > 1 , ‘Two’ = > 2 , ‘Three’ = > 3 ) ;
$last = end ( $array ) ;
echo «Last Element: $last\n» ;
$current = current ( $array ) ;
echo «Current Element: $current\n» ;
Последний элемент: 3
Текущий элемент: 3
Обратите внимание, что end() функция перемещает внутренний указатель массива к его последнему элементу. Если вы не хотите изменять указатель внутреннего массива, передайте массив в качестве параметра функции и вызовите метод end() функция. Это работает, потому что массив передается как копия, а не как ссылка.
Как извлечь последний элемент php массива
Существует множество способов решения данной задачи. Я расскажу о парочке из них.
Если массив не нужно никак модифицировать, то можно использовать функцию array_key_last() , которая возвращает индекс последнего элемента. Лучше сразу взглянуть на пример:
$words = ['hexlet', 'potato', 'green']; $lastItem = $words[array_key_last($words)]; print_r($lastItem); // => 'green'
Также можно использовать встроенную функцию array_pop() . Она извлекает последний элемент и возвращает его значение, но нужно помнить о том, что при этом исходный массив уменьшается на один элемент.
$words = ['hexlet', 'potato', 'green', 'smith']; $lastItem = array_pop($words); print_r($lastItem); //=> 'smith' print_r($words); //=> ['hexlet', 'potato', 'green']
Как получить последний элемент массива php
Делаем так, перегоняем текст в массив и переходим на последний элемент массива.
$item = 'https://my-site.com/4-must-mobile/apps-travelling'; $post_name = explode('/', $item); echo end($post_name);
функция end — переводит курсор в конец массива
Есть так же для блуждания по массиву и такие функции
current() — Возвращает текущий элемент массива
each() — Возвращает текущую пару ключ/значение из массива и смещает его указатель
prev() — Передвигает внутренний указатель массива на одну позицию назад
reset() — Устанавливает внутренний указатель массива на его первый элемент
next() — Перемещает указатель массива вперед на один элемент
array_key_last() — Получает последний ключ массива
Например, теперь нужно получить предпоследний элемент массива
$item = 'https://my-site.com/4-must-mobile/apps-travelling'; $post_name = explode('/', $item); end($post_name); echo prev($post_name);