<div class="inner">First</div> <div class="inner">Second Second</div> <div class="inner">Second Second</div>
4 Réponses :
Essayez ceci:
$first = true; $all = []; $couples = []; foreach ($settings['items'] as $item){ if($first){ $first = false; $first_out = 'First'; //or whatever $all[] = $first_out; }else{ if(count($couples) == 2){ $all[] = $couples; $couples = []; } $couples[] = 'Second'; } } foreach($all as $value){ echo '<div class="inner">'.implode(',', $value).'</div>'; }
Un peu de pré-dispute, supprimez le premier élément, puis fusionnez-le dans le tableau fragmenté restant.
array(3) { [0]=> array(1) { [0]=> string(3) "foo" } [1]=> array(2) { [0]=> string(3) "foo" [1]=> string(3) "foo" } [2]=> array(2) { [0]=> string(3) "foo" [1]=> string(3) "foo" } } <div class="inner">foo</div> <div class="inner">foo foo</div> <div class="inner">foo foo</div>
Sortie:
<?php $items = array_fill(0, 5, 'foo'); // An array of five 'foo's. $first = array_shift($items); $chunked = array_chunk($items, 2); $chunked = array_merge([[$first]], $chunked); var_dump($chunked); foreach($chunked as $chunk) { echo '<div class="inner">' . implode(' ', $chunk) . "</div>\n"; }
Comme vous n'utilisez pas la valeur de $ settings ['items'] dans le code, vous pouvez simplement travailler avec cette longueur de tableau
$count = count($settings['items']); if ($count--) echo `<div class="inner">First</div>`; while($count > 1) { echo '<div class="inner">Second Second</div>'; $count -= 2; } if ($count--) echo `<div class="inner">Second</div>`;
J'utiliserai $ settings ['items']
Vous pouvez essayer ceci,
$b = 0; for($j = 1; $j <= 2; $j++){ $b++; for($i = 1; $i <= $b;$i++){ switch($b){ case '1': echo '<div class="inner">FIRST</div>';break; case '2': echo '<div class="inner">SECOND SECOND</div>';break; } } }
D'où vient
$ out2
?Utilisez l'opérateur modulo sur le compteur de boucle.
$ b% 3 == 0
signifie première colonne,$ b% 3! = 0
signifie deuxième ou troisième. (Nécessite de démarrer votre compteur à 0 pour le premier objet.)Ou divisez votre matrice en morceaux de taille 3.
Vous pouvez également obtenir le premier élément, le désactiver et découper le tableau en morceaux de taille 2. facile