(495) 925-0049, ITShop интернет-магазин 229-0436, Учебный Центр 925-0049
  Главная страница Карта сайта Контакты
Поиск
Вход
Регистрация
Рассылки сайта
 
 
 
 
 

Цикл foreach определение первого и последнего элемента массива

Источник: webmagazine

Я думаю каждый веб программист сталкивался с выводом красивых меню. При решении данной задачи порой необходимо для первого и/или последнего элемента присвоить свои стили. Можно конечно просто посчитать число элементов в массиве и завести счетчик, но я решил раскрыть вам два более элегантных способа решения данной задачи.

Метод номер 1 (наипростейший)

foreach ($array as $key => $value) {

   // делаем что-либо с каждым элементом

   if (!next($array)) {

        // делаем что-либо с последним элементом...

    }

}

Метод номер 1 (универсальный)

$a=getArray();

/* Получаю массив из БД и прогоняю его

    через шаблон */

 

if(!empty($a)){

 

      $last_key = & get_last_key($a);

      $first_key = & get_first_key($a);

 

      foreach($a as $k => $v){

 

            // ... Вывод элемента

 

            $tpl->assign('CLASS', ($k == $last_key ? ' class="last"' : ''));

            /* Если элемент последний, то выводим его с классом

                class="last", аналогично можно сделать и для first_key */

 

            $tpl->parse('MAIN.TOPMENU.ITEM');

 

      } $tpl->parse('MAIN.TOPMENU');

 

}

 

/* Функция возвращает ключ первого элемента массива */

function &get_first_key(&$array) {

      if (!is_array($array)) return null;

      if (!count($array)) return false; // равносильно reset()

      reset($array);

      return key($array);

}

 

/* Функция возвращает ключ последнего элемента массива */

function &get_last_key(&$array) {

      if (!is_array($array)) return null;

      if (!count($array)) return false; // равносильно end()

      end($array);

      return key($array);

}

Ссылки по теме


 Распечатать »
 Правила публикации »
  Написать редактору 
 Рекомендовать » Дата публикации: 09.06.2008 
 

Магазин программного обеспечения   WWW.ITSHOP.RU
Kaspersky Endpoint Security для бизнеса – Стандартный Russian Edition. 10-14 Node 1 year Base License
SAP® Crystal Presentation Design 2016 WIN INTL NUL
SAP Crystal Reports 2008 INTL WIN NUL License
ABBYY Lingvo x6 Европейская Домашняя версия, электронный ключ
Pinnacle Studio 22 Ultimate
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Безопасность компьютерных сетей и защита информации
Программирование на Microsoft Access
OS Linux для начинающих. Новости + статьи + обзоры + ссылки
Один день системного администратора
Все о PHP и даже больше
Новости мира 3D-ускорителей
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
 



    
rambler's top100 Rambler's Top100