2012-02-10 3 views
0

I've получил следующее:New Table Row, если переменная = 0

<table border="1"> 
<?php 
$i = 0; 
$tmp = 1; 
foreach ($recip['Data']['Recipes'] as $key => $recipe) { 
     $tmp = $i % 2; 
     echo $tmp; 
     if($tmp == 0) { 
      echo '<tr>'; 
     } 
     echo '<td> 
        <a href="/recipe_search.php?id=' . $recipe['ID'] . '">'; 
     echo $recipe['TITLE']; 
     echo '</a> </td>'; 
     if($tmp == 0){ 
      echo '</tr>'; 
     } 
     $i = $i + 1;  
} 
?> 
</table> 

То, что я хочу, что, два значения в одной строке. Поэтому, если $ tmp равно, необходимо запустить новую строку. К сожалению, код этого не делает, каждое значение стоит в новой строке. Как я могу это сделать?

+0

Вы не представляете, что происходит в этом фрагменте, не так ли? – anthares

+0

'echo'ing' $ tmp' в середине таблицы html сделает его недействительным, так как браузер делает его непредсказуемым. –

ответ

3
<table border="1"> 
<?php 
$i = 0; 

foreach ($recip['Data']['Recipes'] as $key => $recipe) { 
     if($i % 2 == 0) { 
      echo '<tr>'; 
     } 
     echo '<td><a href="/recipe_search.php?id=' . $recipe['ID'] . '">'; 
     echo $recipe['TITLE']; 
     echo '</a> </td>'; 
     if(($i+1) % 2 == 0){ 
      echo '</tr>'; 
     } 
     $i++;  
} 
// if there is an odd number of entries, the last one will include only one recipie. 
// but we must still echo </tr> 
if(count($recip['Data']['Recipes']) % 2 != 0){ 
    echo '</tr>'; 
} 
?> 
</table> 
+0

отлично, спасибо ... Я приму его примерно через 7 минут – user896692