2010-11-23 4 views
2

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

 
abcd defg hijk 
lmno pqrs tuvw 
xyz1 2345 6789 
1011 1213 

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

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

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

ответ

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

Псевдо-код, так как я не знаю 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, чтобы изменить вывод номера в каждой строке.

1

Это лучше использовать 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;'; 
} 

Code in action