2015-02-24 54 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