2009-11-24 33 views

Trả lời

10
$i=0; 
foreach ($x as $key=>$value) 
    { 
    if (fmod($i,2)) echo '<tr>'; 
    echo '<td>',$value,'</td>'; 
    if (fmod($i,2)) echo '</tr>'; 
    $i++; 
    } 

chí đầu ra này TR (hàng) mỗi lần thứ hai

ps: tôi đã không kiểm tra mã, vì vậy có thể bạn sẽ cần phải thêm! ký trước fmod, nếu nó không xuất TR trên lần lặp đầu tiên, nhưng trên lần lặp thứ hai trong đầu ...

+0

Cảm ơn bạn, điều này làm việc tuyệt vời. Vâng, tôi phải thêm fmod cho lần đầu tiên. – brad

+4

Không hoạt động ... –

+3

@ FredStevens-Smith: Thay vì nói 'Không hoạt động', tại sao bạn không xây dựng một chút. Tại sao nó không hoạt động? Bạn đã nhận được một lỗi? Làm thế nào nó có thể được cải thiện? – TheCarver

37

Bạn có thể sử dụng array_chunk() để chia mảng dữ liệu thành mảng nhỏ hơn, trong trường hợp này là 2, Cho mỗi hàng.

<table> 
<?php foreach (array_chunk($values, 2) as $row) { ?> 
    <tr> 
    <?php foreach ($row as $value) { ?> 
     <td><?php echo htmlentities($value); ?></td> 
    <?php } ?> 
    </tr> 
<?php } ?> 
</table> 

Lưu ý rằng nếu bạn có số lẻ giá trị, điều này sẽ để lại hàng cuối cùng chỉ với một ô. Nếu bạn muốn thêm ô trống nếu cần, bạn có thể kiểm tra độ dài $row bên ngoài foreach.

+0

Điều này sẽ hoạt động tốt trong tập lệnh khác mà tôi có. Cảm ơn bạn. – brad

+0

Người đàn ông cảm ơn tuyệt vời này ... –

+1

Sẽ không hoạt động với trình biến đổi – Oleg

2

Điều này sẽ cung cấp cho bạn bảng tuyệt vời và vòng lặp for concept--

<table border="1" cellspacing="0" cellpadding="2"> 

<?php 

    for($x=1; $x<=20; $x++) 
     { 
     echo "<tr>"; 
     for($y=1; $y<=20; $y++) 
      { 
      echo "<td>"; 
      echo $x*$y; 
      echo "</td>"; 
      } 
     echo "</tr>"; 
     } 
?> 
</table> 
+0

Tôi không nghĩ rằng đây chính xác là những gì OP muốn ... Đọc câu hỏi. – BenjiWiebe

-1
<table> 
<?php 
    $i=0; 
    foreach ($x as $key=>$value) 
    { 
     if (!$i%2) echo '<tr>'; 
     echo '<td>',$value,'</td>'; 
     if ($i%2) echo '</tr>'; 
     $i++; 
    } 
?> 
</table> 
+0

nó phải = if ($ i% 2 == 0) echo ''; –

Các vấn đề liên quan