//set the array $info = array( 'andy' => 'blue', 'andrew' => 'black', 'mark' => 'green', 'jane' => 'orange', 'simon' => 'red', 'joan' => 'pink', 'sue' => 'yellow', 'alan' => 'black') $i = 1; foreach($info as $key => $val){ <div class="holder"> <div class="name"> <?php echo $Name ?> </div> <div class="colour"> <?php echo $colour ?> </div> </div> }
Это рассеивает каждый класс «владелец» … но то, что я хочу сделать, это обернуть контейнер вокруг класса «держатель» и иметь 3 «держателя» в каждом «контейнере». например:
<div class="container"> <div class="holder"> <div class="name"> <?php echo $Name ?> </div> <div class="colour"> <?php echo $colour ?> </div> </div> <div class="holder"> <div class="name"> <?php echo $Name ?> </div> <div class="colour"> <?php echo $colour ?> </div> </div> <div class="holder"> <div class="name"> <?php echo $Name ?> </div> <div class="colour"> <?php echo $colour ?> </div> </div> </div>
Я не могу узнать, как получить индекс ассоциативного массива, или как разбить цикл foreach один раз% 3 == 0.
Любые предложения были бы замечательными!
-Ved
У вас должна быть отдельная переменная счетчика:
$i = 0; foreach($info as $key => $val){ if($i%3 == 0) { echo $i > 0 ? "</div>" : ""; // close div if it's not the first echo "<div class='container'>"; } ?> <div class="holder"> <div class="name"> <?php echo $Name ?> </div> <div class="colour"> <?php echo $colour ?> </div> </div> <?php $i++; } ?> </div> <!-- close last container div -->
Вы ищете это? php.net/array_chunk
И у вас есть синтаксическая ошибка там
foreach($info as $key => $val){
это должно быть
foreach($info as $key => $val){ ?>
закрытие php для запуска тега HTML
В таком случае вы хотели бы сделать что-то подобное. Убедитесь, что переменные правы.
$i = 1; foreach($info as $key => $val){ if ($i % 3 == 0) { ?> <div name='container'> <?php } ?> <div class="holder"> <div class="name"> <?php echo $key; ?> </div> <div class="colour"> <?php echo $val; ?> </div> </div> if ($i % 3 == 2) { ?> </div> <?php } <?php $i++; }
Вы можете увеличивать $i
внутри цикла foreach, например:
$i = 0; foreach ($info as $key => $val) { if ($i % 3 == 0) { ... } else { ... } $i++; }