2015-02-11 2 views
-7

я просто хочу спросить, как я могу использовать цикл для печатикак я могу использовать для цикла

123  
456 

Я пытаюсь с этим кодом:

<?php 

    $a = array(1,2,3,4,5,6); 

    foreach($a as $r){ 
     for($q = 0; $q < 3; $q++) { 
      echo $r; 
     } 

     echo "<br />"; 

    } 

?> 

Но проблема в том, что печатает :

111  
222  
333  
444  
555  
666 
+5

Просто внутренний цикл прочь! Это базовый php – Rizier123

+2

'foreach (array_chunk ($ a, 3) как $ chunk) {foreach ($ chunk as $ nr) echo $ nr; echo '
'; } ' –

+0

@ Rizier123 Это будет печатать каждый номер в отдельной строке. –

ответ

0

Вы печатаете значение $r три раза за каждое значение $r; вы хотите напечатать каждое значение и распечатать перерыв после каждой третьей.

Что-то, как это будет работать:

foreach ($a as $i => $r) { 
    echo $r; 
    // insert break after every third value 
    if ($i > 0 && ($i + 1) % 3 == 0) { 
     echo '<br />'; 
    } 
} 

Или вы могли бы использовать array_chunk() разделить массив в куски трех и печати каждого из них.

foreach (array_chunk($a, 3) as $chunk) { 
    foreach ($chunk as $nr) { 
     echo $nr; 
    } 
    echo '<br />'; 
} 
0

Используйте array_chunk ($ a, 3), а затем используйте implode, который даст вам необходимый результат.

0
$a = array(1,2,3,4,5,6,7,8,9); 
$result=''; 
$i = 1; 
foreach($a as $r) 
{ 
$result.=$r; 
    if($i%3 == 0) 
    { 
     echo $result."<br />"; 
     $result=''; 
    } 
    $i++; 
} 
Смежные вопросы