PHP эхо в строках по три? - PullRequest
       4

PHP эхо в строках по три?

2 голосов
/ 23 ноября 2010

Я пытаюсь отобразить данные в трех строках (обратите внимание, что количество элементов не всегда будет четным):

abcd defg hijk
lmno pqrs tuvw
xyz1 2345 6789 
1011 1213

Я изо всех сил пытаюсь получить логикуправильно сделать это (это в цикле foreach()).

Я знаю, что у меня должна быть какая-то логика if($i %3 == 0). Но я немного застрял.

Кто-нибудь может мне помочь?

Ответы [ 3 ]

4 голосов
/ 23 ноября 2010
$a = array('abcd','defg','hijk','lmno');
for ($i = 0; $i < count($a); $i++) {
  if ($i && $i % 3 == 0)
    echo '<br />';
  echo $a[$i].' ';
}
1 голос
/ 23 ноября 2010

Лучше использовать цикл for как:

// 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;';
}

Код в действии

0 голосов
/ 23 ноября 2010

Псевдокод, так как я не знаю PHP (и вы просили логику, которая, как правило, одинакова для всех процедурных языков):

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

Это будет выводить разделитель строк перед элементами3, 6, 9 и т. Д. (Первый элемент равен 0) и поместите любой желаемый интервал перед вторым и третьим элементами в каждой строке.Вы можете просто использовать другое значение для perline, чтобы изменить вывод числа в каждой строке.

...