За последние 24 часа нас посетили 16985 программистов и 1341 робот. Сейчас ищут 1620 программистов ...

Вывод массива foreach в 2 колонки

Тема в разделе "PHP для новичков", создана пользователем greenzlat, 17 мар 2015.

  1. greenzlat

    greenzlat Активный пользователь

    С нами с:
    27 апр 2008
    Сообщения:
    255
    Симпатии:
    0
    Есть ul li список, выведенные массивом:

    Код (Text):
    1. <?php foreach ($categories as $category) { ?>
    2.                   <div class="one-dept">
    3.                             <a class="mainCat" href="<?php echo $category['href']; ?>"><?php echo $category['name']; ?></a>
    4.                               <?php if ($category['children']) { ?>
    5.                                   <div>
    6.                                     <?php for ($i = 0; $i < count($category['children']);) { ?>
    7.                                         <ul>
    8.                                           <?php $j = $i + ceil(count($category['children']) / $category['column']); ?>
    9.                                           <?php for (; $i < $j; $i++) { ?>
    10.                                           <?php if (isset($category['children'][$i])) { ?>
    11.                                           <li><a href="<?php echo $category['children'][$i]['href']; ?>"><?php echo $category['children'][$i]['name']; ?></a></li>
    12.                                           <?php } ?>
    13.                                           <?php } ?>
    14.                                         </ul>
    15.                                     <?php } ?>
    16.                                   </div>
    17.                               <?php } ?>
    18.                        </div><!--/one-dept-->
    19.                     <?php } ?>
    Подскажите как вывести <div class="one-dept"> в две колонки, то есть у меня в массиве 6 таких элементов формируется. Мне надо первые 3 поместить в один div, другие 3 в другой div, подскажите как сделать?

    Добавлено спустя 10 минут 55 секунд:
    Делаю так:
    Код (Text):
    1. <?php $c=0;
    2.  if (trim($value)!="")
    3. foreach ($categories as $category => $value) {
    4.  if (trim($value)!="") {?>
    5. <?php  if ($c == 0){ ?><div class="col1"><a class="mainCat" href="<?php echo $value['href']; ?>"><?php echo $value['name']; ?></a>
    6.                               <?php if ($value['children']) { ?>
    7.                                     <?php for ($i = 0; $i < count($value['children']);) { ?>
    8.                                           <?php $j = $i + ceil(count($value['children']) / $value['column']); ?>
    9.                                           <?php for (; $i < $j; $i++) { ?>
    10.                                           <?php if (isset($value['children'][$i])) { ?>
    11.                                           <li><a href="<?php echo $value['children'][$i]['href']; ?>"><?php echo $value['children'][$i]['name']; ?></a></li>
    12.                                           <?php } ?>
    13.                                           <?php } ?>
    14.                                     <?php } ?>
    15.                               <?php } ?></div>    <?php } ?>
    16. <?php else {?><div class="col2"><a class="mainCat" href="<?php echo $value['href']; ?>"><?php echo $value['name']; ?></a>
    17.                               <?php if ($value['children']) { ?>
    18.                                     <?php for ($i = 0; $i < count($value['children']);) { ?>
    19.                                           <?php $j = $i + ceil(count($value['children']) / $value['column']); ?>
    20.                                           <?php for (; $i < $j; $i++) { ?>
    21.                                           <?php if (isset($value['children'][$i])) { ?>
    22.                                           <li><a href="<?php echo $value['children'][$i]['href']; ?>"><?php echo $value['children'][$i]['name']; ?></a></li>
    23.                                           <?php } ?>
    24.                                           <?php } ?>
    25.                                     <?php } ?>
    26.                               <?php } ?></div>     <?php }
    27. $c++; ?>
    28.       <?php }
    29.                     } ?>
    Выходит пустая страница..
     
  2. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.112
    Симпатии:
    1.243
    Адрес:
    там-сям
    phpfaq.ru/debug
     
  3. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.770
    Адрес:
    :сердА
    Автор, код страшен, плох, нечитабален и непонимабелен. Никто не будет его фиксить за тебя.
    Одни только конструкции
    Код (Text):
    1. for (; $i < $j; $i++) {
    , использующие итератор вышестоящего цикла - это <тут типа грубейшая нецензурщина, от которой даже парсер матершины бы покраснел>. Код неуправляем и непредсказуем. Проще написать с нуля и чисто, чем фиксить такое.
     
  4. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв