我有从 mysql 数据库获取的以下数组,在获取所有数据后,我应该创建一个表来显示所有值。
Array
(
[0] => Array
(
[groupNo] => 1001
[name] => james
)
[1] => Array
(
[groupNo] => 1002
[name] => chen
)
[2] => Array
(
[groupNo] => 1002
[name] => ash
)
[3] => Array
(
[groupNo] => 1001
[name] => mark
)
)
我当前的表格是这样的:
Group Number | Name | Action |
-------------+------+---------------------
1001 | James | |
------------+----------------+------------
1002 | chen | |
-------------+---------------+------------
1002 | ash | |
-------------+---------------+------------
1001 | mark | |
-------------+---------------+------------
但我想要的是我的表格如下所示:
Group Number | Name | Action |
-------------+------+---------------------
1001 | James | |
+---------------+------------
| Mark | |
-------------+----------------------------
1002 | chen | |
+----------------------------
| ash | |
-------------+----------------------------
下面是我的代码:
<?php
if (count($sharingGroup) > 0) {
for ($i = 0; $i < count($sharingGroup); $i++) {
$sharingGroupRecord = $sharingGroup[$i];
?>
<tr>
<td>' . $sharingGroupRecord ['groupNo'] .'</td>
<td>' . $sharingGroupRecord ['name'] .'</td>
<td><a name="action" href="#">Action<span>
</span></a>
</tr>
请大家帮我解决这个问题。
最佳答案
首先您需要重新创建数组
$newArray = array();
foreach($sharingGroup as $item) {
$newArray[$item['groupNo']][] = $item['name'];
}
它会产生这样的结果:
Array
(
[1001] => Array
(
[0] => james
[1] => mark
)
[1002] => Array
(
[0] => chen
[1] => ash
)
)
然后循环遍历 newArray
if (count($newArray) > 0) {
$html = '';
foreach($newArray as $key => $val) {
$html .= "<tr>\r\n";
$html .= "<td rowspan='".count($val)."'>{$key}</td>\r\n";
foreach($val as $key => $td) {
if($key>0) {
$html.= "<tr>";
}
$html .= "<td>{$td}</td>\r\n";
$html .= "<td>Action</td>\r\n";
$html .= "</tr>\r\n";
}
}
}
你会得到this结果
这是code全部集中在一处
关于php - 如何使用php数组制作html合并行表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20978623/