2015-11-02 69 views
1

我想從嵌套的foreach循環創建一個簡單的html表。實際數據將存儲在我的數據庫中。 我想要一個表格如下:從嵌套的PHP foreach循環創建表

--------------------- 
1 | A | red  | 
--------------------- 
2 | B | blue | 
--------------------- 
3 | C | yellow | 
--------------------- 
4 | D | orange | 
--------------------- 


$values1 = "1,2,3,4"; 
$values2 = "A,B,C,D"; 
$values3 = "red,blue,yellow,orange"; 

$var1 = explode(',', $values1); 
$var2 = explode(',', $values2); 
$var3 = explode(',', $values3); 

echo '<table>'; 

    foreach ($var1 as $row1) { 
     echo '<tr>'; 
     echo '<td>'.$row1.'</td>'; 

     foreach ($var2 as $row2) { 
      echo '<td>'.$row2.'</td>'; 
     } 
     foreach ($var3 as $row3) { 
      echo '<td>'.$row3.'</td>'; 
     } 
     echo '</tr>'; 
    } 

echo '</table>'; 

回答

2

此代碼:

<?php 
$values1 = "1,2,3,4"; 
$values2 = "A,B,C,D"; 
$values3 = "red,blue,yellow,orange"; 

$var1 = explode(',', $values1); 
$var2 = explode(',', $values2); 
$var3 = explode(',', $values3); 

echo '<table border="1">'; 
for($i = 0; $i < count($var1); $i++){ 
    echo '<tr>'; 
    echo '<td>'.$var1[$i].'</td>'; 
    echo '<td>'.$var2[$i].'</td>'; 
    echo '<td>'.$var3[$i].'</td>'; 
    echo '</tr>'; 
} 


echo '</table>'; 
+0

fico從ME偷走了這個。我甚至有'border =「1」' – dcromley

+0

哈哈你的答案在哪裏? – fico7489

2

我認爲這可以幫到你。直接將數值定義爲數組,並用foreach循環表示它們。這更像是mysql_fetch_array代表從數據庫獲取的記錄的方式。

$values = []; 
$values[] = [1, "A", "red"]; 
$values[] = [2, "B", "blue"]; 
$values[] = [3, "C", "yellow"]; 
$values[] = [4, "D", "orange"]; 

echo '<table>'; 
    foreach ($values as $value) { 
     echo '<tr>'; 
     echo '<td>'.$value[0].'</td>'; 
     echo '<td>'.$value[1].'</td>'; 
     echo '<td>'.$value[2].'</td>'; 
     echo '</tr>'; 
    } 
echo '</table>'; 
+1

好吧,你改變了OP的輸入數據(數組) –

0

如果你使用$var1爲「基地」陣列,可以很方便檢查是否有其他陣列也含有相同的指標(長度相同$var1)至避免PHP警告。

foreach ($var1 as $key => $value) { 
    echo '<tr>'; 
    echo '<td>'.$value.'</td>'; 
    echo '<td>'.(isset($var2[$key]) ? $var2[$key] : '').'</td>'; 
    echo '<td>'.(isset($var3[$key]) ? $var3[$key] : '').'</td>'; 
    echo '</tr>'; 
}