Php foreach последний элемент массива

Php foreach последний элемент массива

Существует ли условие последнего элемента без использования функции count(). Как можно оптимизировать, сократить данный код?

1 ответ 1

Полагаю, такое имели в виду?

Или ещё вариант

Всё ещё ищете ответ? Посмотрите другие вопросы с метками php foreach или задайте свой вопрос.

Связанные

Похожие

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

дизайн сайта / логотип © 2019 Stack Exchange Inc; пользовательское содержимое попадает под действие лицензии cc by-sa 4.0 с указанием ссылки на источник. rev 2019.11.15.35459

Hello, robots!

PHP: последний элемент foreach

Изобрел велосипед для определения последнего элемента в цикле foreach() — с помощью функции next(). Чтобы не считать число элементов в массиве, не заводить счетчик и не сравнивать его значение с числом элементов.

Для чего это нужно? Обычно для таких случаев: есть нескольо блоков, разделенных чертой. Я делаю это дивами с border-bottom. Для последнего блока надо указать border:none.

Комментарии

мда, век живи век учись, спасибо. (:

Зачот. Я как последний дурак определял (count()-1). Вроде и не новичёк уже, а столь банальный и до ужаса рациональный способ проглядел! Спасибо большое, будем юзать.

Большое тебе человеческое спасибо!

Круто. сначал думал сделать постаринке.. И дума дайка гляну чё люди юзают для этого.. и сразу твой сатец и эта тема..

Выбранное решение подходит только для означенной задачи — т.е. когда есть уже цикл, который делает что-то с каждым элементом массива и нужно проверить, не является ли этот элемент последним.

Если нужно просто получить последний элемент массива, не трогая остальные, проще и быстрее использовать count()-1, а не перебирать один за другим элементы массива. Что, если в массиве 10000000000 элементов? 🙂

Читайте также:  666 Что значит этот номер

“Выбранное решение подходит только для означенной задачи” — автор комментария был туп и не понял, что писал. В представленном примере как раз и описано решение конкретного случая, вы же, будьте любезны сделайте с собой нечто суицидальное, чтобы избавить мир от ваших очередных псевдоинтеллектуальных эксцессов.

Deeper: чтобы получить последний элемент массива, проще использовать $element = end($array);
аналогично для первого элемента сгодится $element = reset($array);

>мда, век живи век учись, спасибо. (:
подписываюсь под этими словами
ещё не знал про $element = end($array);

В первом случаи все безтолку, во втором внутрений указатель "калбасит".

mixed end ( array &$array )

end() устанавливает внутренний указатель array на последний элемент и возвращает его значение.

mixed next ( array &$array )

Возвращает значение элемента массива, находящегося на позиции, следующей за позицией, в которой находится его внутренний указатель или FALSE, если достигнут конец массива.

Замечание: When foreach first starts executing, the internal array pointer is automatically reset to the first element of the array. This means that you do not need to call reset() before a foreach loop.

Замечание: Unless the array is referenced, foreach operates on a copy of the specified array and not the array itself. foreach has some side effects on the array pointer. Don’t rely on the array pointer during or after the foreach without resetting it.

Вариант №1 работает только если явно задать ключи:

Вариант №2 работает только если массив передать по ссылке:

Ссылка на основную публикацию
Panel x keeper ru личный кабинет
Скачать Тут вы можете скачать АПK-файл "X-Keeper Panel" для Андроид бесплатно, апк файл версии - 1.1.2 для загрузки на ваш...
Mysql вывести последнюю запись
Это пример кода для выбора всех записей из таблицы. Может ли кто-нибудь показать мне, как выбрать последнюю запись этой таблицы?...
Mysql query error select distinct
I keep running into the same error, using MySQL. The totaal value is marked as wrong, but i have no...
Panther что это за папка
Member Статус: Не в сети Регистрация: 30.07.2006Откуда: Москва Зеленогр День добрыйНе так давно установил Windows 7 x64Диску С я выделил...
Adblock detector