Question

Je tente de montrer les données en lignes de trois comme celui-ci (notez le nombre d'articles ne sera pas toujours même):

abcd defg hijk
lmno pqrs tuvw
xyz1 2345 6789 
1011 1213

Je me bats pour obtenir le droit logique de le faire (ce qui est dans une boucle de foreach()).

Je sais que je dois avoir une certaine logique de if($i %3 == 0) là-dedans .. Mais je suis un peu coincé.

aide quelqu'un peut me sortir?

Était-ce utile?

La solution

$a = array('abcd','defg','hijk','lmno');
for ($i = 0; $i < count($a); $i++) {
  if ($i && $i % 3 == 0)
    echo '<br />';
  echo $a[$i].' ';
}

Autres conseils

Il est préférable d'utiliser une boucle de for comme:

// run $i for each index in the array.
for($i=0 ; $i<count($arr) ; $i++) {

        // if $i is non-zero and is divisible by 3 print a line break.
        if ($i && $i % 3 == 0) {
                echo "<br />";
        }

        // print the element at index $i.
        echo $arr[$i].'&nbsp;';
}

Code de l'action

Code pseudo-car je ne sais pas PHP (et vous demandé la logique qui tend à être la même dans toutes les langues de procédure):

perline = 3
i = 0
foreach item in list:
    if i > 0 and (i % perline) == 0:
        print newline
    if (i % perline) != 0:
        print space
    print item
    i = i + 1

Ce sera à la fois la sortie d'un séparateur de ligne avant éléments 3, 6, 9 et ainsi de suite (premier élément étant 0) et endroit que ce soit vous désiré espacement voulez avant les deuxième et troisième éléments de chaque ligne. Vous pouvez simplement utiliser une valeur différente pour perline pour changer la sortie du numéro sur chaque ligne.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top