2014-09-30 28 views
0

我想在PHP的規劃委員會,我希望它看起來像這樣(表):PHP規劃錶板

名1         X
名2
NAME3
NAME4                                                                                 X
                       星期一|星期二|星期三

我有2個foreaches,1個名字和1個數據。

foreach($names) { 
    foreach($data) { 
     <tr> 
     <td> $names </td> 
     <td> if data['data'] == 1 { X }</td> 
     <td> if data['data'] == 2 { X }</td> 
     <td> if data['data'] == 3 { X }</td> 
     </tr> 
    } 
} 

但是這段代碼複製了名稱。當我把tr和td $名稱放在其他foreach中時,它會創建比4更多的字段。我怎樣才能結合這些foreaches?

我希望有人能幫助我。

+0

哪裏你的名字$陣列從何而來?你如何定義它?或者它來自數據庫查詢? – 2014-09-30 09:09:11

+0

$ names是一個包含數據庫名稱的數組 – 2014-09-30 09:10:39

+0

我們可以看到$ names和$ data的一些示例數據嗎?另外,您輸出的所有$名稱 – andyroo 2014-09-30 09:10:40

回答

0

不知道你的數組包含什麼,但對於初學者,你輸出所有的名稱值,應該是這樣的。

現在,我們有數組

$data = array(array("id" => 1, "data" => 0), array("id" => 2, "data" => 1)) 

你的代碼,希望成爲像..

<?php 
    foreach($names as $key => $value) { 
     $d = $data[$key]['data']; ?> 
     <tr> 
     <td> <?php echo $value; ?> </td> 
     <td> <?php if ($d == 1) { echo 'X'; } ?></td> 
     <td> <?php if ($d == 2) { echo 'X'; } ?></td> 
     <td> <?php if ($d == 3) { echo 'X'; } ?></td> 
     </tr><?php 
    } 

?> 
0

我認爲在這種情況下,你將需要2個foreach循環,嵌套遞歸ISN除非你嵌套了幾層深的東西,而且很難調試,否則這是一件壞事。

你可能需要的是這樣的:

//each row is a name 
foreach($names as $name){ 
    echo "<tr>";//<-- new row 
    $x = 1;//counter 
    //each data is a column 
    foreach($data as $d){ 
     echo "<td>";//<-- new column 
     if($d == $x){// is $d equal to 1,2,3,4,[n] 
      echo "X"; 
     } 
     echo "</td>"; 
     $x++;//increment counter 
    } 
    echo "</tr>"; 
}