【问题标题】:Create a custom html table from a multidimentional array从多维数组创建自定义 html 表
【发布时间】:2015-02-25 03:31:57
【问题描述】:

2 小时我正在寻找我的问题的解决方案,但尚未找到结果。我有一个数组($array),我使用 foreach 循环从我的数据库创建。当我使用 var_dump($array) 我得到这个:

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) 存储从数据库中选择并存储在 $array 中的信息,如下所示:

$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 表中显示 $array :

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

我还需要一件事是表行(1,2)和列(1,2,3,4)的值以这种方式存储在数据库的2个表中:

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

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

如何将数组:$array 显示为 html 表格,如“想要的 Html 表格”?

万分感谢任何能在这个问题上帮助我的人。

【问题讨论】:

  • 您似乎在这里问了两个不同的问题:如何从我的数据库创建多维数组,以及如何将其转换为 HTML 中的 X-Y 表。对吗?
  • 没有。我从数据库创建了多维数组,并放入了我拥有的数组结构。我只需要如何使用该数组创建 html 表

标签: php arrays database


【解决方案1】:
//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>';

【讨论】:

  • 谢谢,这正是我想要的。
猜你喜欢
  • 2014-01-11
  • 2014-12-10
  • 2014-07-06
  • 2015-06-16
  • 1970-01-01
  • 2011-07-28
  • 1970-01-01
  • 2020-07-17
  • 1970-01-01
相关资源
最近更新 更多