(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
ABBYY Lingvo x6 Европейская Домашняя версия, электронный ключ
erwin Data Modeler Navigator Edition r9.7 - Product plus 1 Year Enterprise Maintenance Commercial
DevExpress / DXperience Subscription
Quest Software. SQL Navigator Professional Edition
Quest Software. Toad for Oracle Development Suite
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Безопасность компьютерных сетей и защита информации
OS Linux для начинающих. Новости + статьи + обзоры + ссылки
Один день системного администратора
Все о PHP и даже больше
Delphi - проблемы и решения
Краткие описания программ и ссылки на них
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
 



    
rambler's top100 Rambler's Top100