2016-02-26 3 views
0

У меня есть массив профилей. Я хочу прокрутить их и распечатать данные для каждого человека. Я использую самозагрузки, так что я хотел бы иметь 3 профилей в каждом ряду, а затем начать новую строку в течение еще 3 профилей, как следующее:Сплит Foreach в разных разделах

<div class="row"> 
    <div class="col-md-3"> 
     Profile Data 
    </div> 
</div> 

Если я перебрать с помощью Еогеасп, я получаю новый ряд каждого профиля, когда мне хотелось бы 3 профиля, а затем новую строку:

foreach($profiles as $p){ 
    echo '<div class="row"> 
     <div class="col-md-3"> 
      '.$p->name.' 
     </div> 
    </div>'; 
} 

Может ли кто-нибудь мне посоветовать?

+0

Использование счетчика в цикле, и только эхо начало строки div, когда счетчик равен 1 и конец конца строки, когда счетчик равен 3. Сбросьте счетчик обратно на 0. – Gavin

ответ

3

Просто поставить некоторые основные логики для трех результатов в ряду:

echo '<div class="row">'; 
$count = 0; 
foreach ($profiles as $p) { 
    echo '<div class="col-md-3">' . $p->name . '</div>'; 
    $count++; 
    if($count%3==0){ 
     print '</div><div class="row">'; 
     $count = 0; 
    } 
} 
echo '</div>' 
+0

Отлично! Thank youi – danjswade

-2

Я думаю, что это то, что вы хотите сделать:

$i = 0; 
foreach($profiles as $p){ 
    $i++; 
    if(($i)% 3 == 0){ 
    echo '<div class="row">'; 
    } 
    echo '<div class="col-md-3">'.$p->name.'</div>'; 
    if(($i)% 3 == 0){ 
    echo '</div>'; 
    } 
} 
+1

auwgh, слишком медленно :) – bastiherrmann

+1

Ваша логика деления по модулю неверна, должна быть '$ i% 3 == 0' otherwhise будет создавать неправильную структуру. И нет необходимости проверять его дважды. См. Здесь: http://php.net/manual/en/language.operators.arithmetic.php – mitkosoft

+0

Вы правы, это должно быть 0. Я исправлю ... – bastiherrmann

Смежные вопросы