2015-02-24 84 views
0

2小時我正在尋找我的問題的解決方案,但沒有找到任何結果。我有一個數組($數組),我用我的數據庫創建一個foreach循環。當我用var_dump($陣列)我得到這個:從多維數組創建一個自定義html表

array(2) { 
    [a1] => array(4) { 
    [b1] => string(2) "32" 
    [b2] => string(2) "98" 
    [b3] => string(2) "45" 
    [b4] => string(3) "654" 
    } 
    [a2] => array(3) { 
    [b1] => string(3) "677" 
    [b2] => string(2) "12" 
    [b3] => string(3) "430" 
    } 
} 

這裏重要的是,這是從數據庫中選擇並存儲在$數組像這樣我的數組($數組)店的信息:

$array[a1][b1] = 32; 
$array[a1][b2] = 98; 
$array[a1][b3] = 45; 
$array[a1][b4] = 654; 
$array[a2][b1] = 677; 
$array[a2][b2] = 12; 
$array[a2][b3] = 430; 

現在,我的問題是如何顯示HTML表格$陣列像這樣:

Html table wanted: 
_____________________ 
|  | a1 | a2 | 
|______|______|______| 
| b1 | 32 | 677 | 
|______|______|______| 
| b2 | 98 | 12 | 
|______|______|______| 
| b3 | 45 | 430 | 
|______|______|______| 
| b4 | 654 |  | 
|______|______|______| 

此外,我需要一件事是,錶行(1,2)和col的值(1,2,3,4)存儲在2 ta中像這樣在數據庫中:

tableA : 
______________ 
| ID | NAME | 
|______|______| 
| 1 | a1 | 
|______|______| 
| 2 | a2 | 
|______|______| 

tableB : 
______________ 
| ID | NAME | 
|______|______| 
| 1 | b1 | 
|______|______| 
| 2 | b2 | 
|______|______| 
| 3 | b3 | 
|______|______| 
| 4 | b4 |  
|______|______| 

我怎樣才能顯示數組:$ array到像「Html表通緝」的HTML表?

百萬感謝任何人可以幫助我解決這個問題。

+0

您似乎在這裏問兩個不同的問題:如何從我的數據庫創建一個多維數組,以及如何將它轉換爲HTML中的X-Y表。那是對的嗎? – 2015-02-24 19:01:46

+0

不,我從數據庫創建了多維數組,並且放入了我擁有的數組結構。我只需要如何使用該數組創建html表格 – Codinga 2015-02-24 19:04:37

回答

0
//fetch values for a into associative array 
$aValues = fetch_assoc("SELECT * tableA"); 

//fetch values for b into associative array 
$bValues = fetch_assoc("SELECT * tableB"); 

$htmlTable = '<table>'; 

//adding header row 
$htmlTable .= '<tr><td></td>'; 
foreach ($aValues as $aValue) { 
    $htmlTable .= '<td>' . $aValue['name'] . '<td>'; 
} 
$htmlTable .= '</tr>'; 

//adding other rows, this assumes your $array is already generated 
foreach ($bValues as $bValue) { 
    $htmlTable .= '<tr>'; 
    $htmlTable .= '<td>' . $bValue['name'] . '</td>'; 

    foreach ($aValues as $aValue) { 
     if (isset($array[$aValue['name']][$bValue['name']])) { 
      $cellValue = $array[$aValue['name']][$bValue['name']]; 
     } else { 
      $cellValue = ''; 
     } 

     $htmlTable .= '<td>' . $cellValue . '<td>'; 
    } 

    $htmlTable .= '</tr>'; 
} 

$htmlTable .= '</table>'; 
+0

謝謝,正是我想要的。 – Codinga 2015-02-25 09:41:08