Задать вопрос
@abra-cadabra

Как разделить динамический вывод элементов на группы?

Здравствуйте. Пожалуйста нужна помощь. У меня есть php массив с названиями городов, у меня стоит задача сделать вывод их в файле таким образом что бы они автоматически группировались по 3 элемента в одном блоке.
Данные:
$cities = array('London', 'NY', 'LE', 'Rome');

<?php echo $city_name; ?>
<?php echo $city_name; ?>
<?php echo $city_name; ?>

Т.е нужно каждые три элемента оборачивать в тег .
  • Вопрос задан
  • 161 просмотр
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 3
sergiks
@sergiks Куратор тега PHP
♬♬
  • array_chunk() бьёт массив на группы по N элеметов.
  • array_map() применяет функцию к каждому из элементов.
$cities = array('London', 'NY', 'LE', 'Rome');

function wrapRow( $row) { return '<div>' . join(", ", $row) . '</div>'; }

$rows = array_chunk( $cities, 3);
$html = join( array_map("wrapRow", $rows));

var_dump($html); // "<div>London, NY, LE</div><div>Rome</div>"
Ответ написан
Комментировать
если понял верно то вот
Ответ написан
Комментировать
dubr
@dubr
пыхарь
<?php
function group_by_number($arr, $number) {
   $res = [];
   $counter = 0;
   foreach ($arr as $item) {
       if ($counter % $number === 0) {
           $res []= [];
       }
       $res[ count($res) - 1] []= $item;
       $counter++;
   }
   return $res;
}

$arr = ['a','b','c','d','e','f','g','h'];

$groupped = group_by_number($arr, 3);
foreach ($groupped as $group) {
   ?><div class="group"><?php
   foreach ($group as $item) {
       ?><span><?= $item ?></span><?php
   }
   ?></div><?php
}


Но вообще я бы сперва подумал, нельзя ли поправить верстку =)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы