Я думаю каждый веб программист сталкивался с выводом красивых меню. При решении данной задачи порой необходимо для первого и/или последнего элемента присвоить свои стили. Можно конечно просто посчитать число элементов в массиве и завести счетчик, но я решил раскрыть вам два более элегантных способа решения данной задачи.
Метод номер 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);
}