Vik*_*tor 3 html php foreach codeigniter html-table
我有一个非常标准的数据库,例如:
id | name | last_name | gender
-----------------------------------------------
1 | John | Doe | Male
2 | Jane | Smith Dolores Clayborne | Female
3 | Paul | Paulson | Male
Run Code Online (Sandbox Code Playgroud)
我想在表格中显示它,但数据库中的每一行都需要是 HTML 表格中的一列:
id | 1 | 2 | 3
---------------------------------------------
name | John | Jane | Paul
---------------------------------------------
last_name | Doe | Smith | Paulson
| | Dolores |
| | Clayborne |
---------------------------------------------
gender | Male | Female | Male
Run Code Online (Sandbox Code Playgroud)
如果我去:
foreach($data as $row) {
echo "<tr><td>" . $row->id . "</td></tr>";
echo "<tr><td>" . $row->name . "</td></tr>";
echo "<tr><td>" . $row->last_name . "</td></tr>";
echo "<tr><td>" . $row->gender . "</td></tr>";
}
Run Code Online (Sandbox Code Playgroud)
我在一个长列中获取所有数据。如何在每个 SQL 行之后打破列?
注意:$data是一个对象数组,其中包含具有字段值的属性(您可能可以从示例中看出这一点)。
编辑:
我找到了解决方案,请参阅我的答案,它简单而优雅。
我想通了,结果证明这是一个非常简单的解决方案,只有很少的周期并在写入行和单元格之前预先填充数组。
我测试了它,就像一个魅力。;) 它可能对某人有用,所以这里是:
foreach($records as $key => $row) {
foreach($row as $field => $value) {
$recNew[$field][] = $value;
}
}
//This creates a new array composed/transposed with the field names as keys and
//the "rowed" values as sub-arrays.
echo "<table>\n";
foreach ($recNew as $key => $values) // For every field name (id, name, last_name, gender)
{
echo "<tr>\n"; // start the row
echo "\t<td>" . $key . "</td>\n" ; // create a table cell with the field name
foreach ($values as $cell) // for every sub-array iterate through all values
{
echo "\t<td>" . $cell . "</td>\n"; // write cells next to each other
}
echo "</tr>\n"; // end row
}
echo "</table>";
Run Code Online (Sandbox Code Playgroud)