|
|
|
| Есть массив ссылок. Как вывести их в блоке div по 4 ссылки в каждом? | |
|
|
|
|
|
|
|
для: OLi
(07.09.2012 в 20:22)
| | Ну вы уже совсем издеваетесь. ) А вы как предполагаете, как такое можно сделать? | |
|
|
|
|
|
|
|
для: confirm
(07.09.2012 в 20:24)
| | В цикле делать проверку на деление $i без остатка на 4, если == 0, то закрывать блок </div> | |
|
|
|
|
|
|
|
для: OLi
(07.09.2012 в 20:37)
| | Ну, а зачем тогда вопросы? | |
|
|
|
|
|
|
|
для: confirm
(07.09.2012 в 20:38)
| | Вопрос к тому, что первые 4 ссылки не будут помещены в div
if ($i/4==0) {echo '<div><a href=""></a></div>';} | |
|
|
|
|
|
|
|
для: OLi
(07.09.2012 в 20:41)
| | Это с чего вдруг? Разве перед началом цикла нельзя открыть его, как и закрыть последний после окончания цикла?
И вообще, если это простой массив, то и цикла вообще не нужно. | |
|
|
|
|
|
|
|
для: confirm
(07.09.2012 в 20:45)
| | Выходит что так:
Открыли
<div>
Цикл:
if ($i/4 ==0) {</div><div>link</div>}
Конец Цикла
|
| |
|
|
|
|
|
|
|
для: OLi
(07.09.2012 в 20:49)
| | Это с чего так? Ну вы же на вопрос мой ответили правильно, а код почему пишете неадекватный ответу?
И что у вас будет в итоге, разве уже без исполнения этого кода не понятно, что полная ерунда? | |
|
|
|
|
|
|
|
для: confirm
(07.09.2012 в 20:58)
| | да - все верно. Будет так:
<? if ($i%4==0):?>
<div><?=anchor('/categories/'.$item->parent_id.'/'.$item->id, $item->title)?></div>
<?endif;?>
|
Нет - все же не то...тут каждые 4 итерации будет выведен блок div c одной ссылкой... | |
|
|
|
|
|
|
|
для: OLi
(07.09.2012 в 21:01)
| | И как думаете, в чем ошибка?
Я не понимаю - словами вы объяснили правильно, что нужно делать когда деление по модулю равно 0, а вот действуете вопреки....
И ваша экономия ради жалких <div> и </div>, забитая многократными вставками РНР-кода и <?endif;?>, это что разве удобно или сверх оперативно? | |
|
|
|
|
|
|
|
для: confirm
(07.09.2012 в 21:18)
| | хм. что-то не могу сообразить...
нужно получить такую структуру:
<div>4 ссылки тут</div>
<div>4 ссылку тут</div> | |
|
|
|
|
|
|
|
для: OLi
(07.09.2012 в 21:28)
| | Боже мой, да напишите так, если никак не доходит:
<?
$a = array('aaaa', 'bbbb', 'cccc', 'dddd', 'eeee', 'ffff', 'gggg', 'hhhh');
echo '<pre>';
print_r($a);
$a = array_chunk($a, 4);
print_r($a);
$s = '';
foreach($a as $v ) $s .= '<div>'.implode('<br>', $v).'</div>';
echo $s;
|
А с делением по модулю разберитесь, подсказывать не буду, сами найдите ошибку свою, так как это очень простое решение. | |
|
|
|
|
|
|
|
для: confirm
(07.09.2012 в 21:37)
| | Забыл совсем про array_churk,пример понятен..разобрался) | |
|
|
|
|
|
|
|
для: OLi
(07.09.2012 в 21:52)
| | Сделал так:
<div class="sub_menu">
<? if (isset($submenu) && count($submenu)>0) { $i=1; $s='';
foreach($submenu as $item) {
$s.=anchor('/categories/'.$item->parent_id.'/'.$item->id, $item->title).'</br>';
if ($i%4 == 0) { echo '<div>'.$s.'</div>'; $s=''; }
$i++;
}
}
?>
</div>
|
| |
|
|
|
|
|
|
|
для: oli
(09.09.2012 в 14:14)
| | if(!($i%4)) - этого достаточно
$s='' - это то зачем? | |
|
|
|
|
|
|
|
для: confirm
(09.09.2012 в 14:24)
| | У меня ругался на необъявленный $s | |
|
|
|
|
|
|
|
для: OLi
(09.09.2012 в 14:25)
| | Да объявляйте на здоровье, но раз, вне цикла. Я спрашиваю, зачем закрывая блок, вы очищаете эту переменную? И на кой ляд она вам вообще нужна? Вы же не формируете полное меню, а затем выводите. Что его строки без этой $s вывести нельзя?
$i % 4 - это признак только для закрытия блока, строк он не касается. | |
|
|
|