所以,例如我有以下数组:
array(
'q1'=>array(1, 2, 5, 6, 2),
'q2'=>array(1, 2, 5, 6, 2)
);
从该数组,我想创建一个看起来像:
的垂直html表+----+----+
| q1 | q2 |
+----+----+
| 1 | 1 |
| 2 | 2 |
| .. | .. |
| 2 | 2 |
+----+----+
如何实现这一目标?我坚持简单的foreach()
$html = '<table>';
foreach($data as $header=>$cell){
$html .= '<td>'.$header.'</td>';
foreach($cell as $row){
$html .= '<tr><td>'.$row->value.'</td></tr>';
}
}
$html .= '</table>';
答案 0 :(得分:0)
如果$ data是q1和q2的数组,那么
$html = '<table>';
$html .= '<tr><td>q1</td><td>q2</td></tr>';
foreach($data['q1'] as $index => $record){
$html .= '<tr>';
$html .= '<td>'.$record.'</td>';
$html .= '<td>'.$data['q2'][$index].'</td>';
$html .= '</tr>';
}
$html .= '</table>';
答案 1 :(得分:0)
我自己解决了。这是解决方案
$html = '<table>';
$html .= '<tr>';
foreach($data as $key=>$cell){
$html .= '<td>'.$key.'</td>';
}
$html .= '</tr>';
$first = reset($data);
for($i = 0; $i < count($first); $i++){
$html .= '<tr>';
foreach($data as $d){
$html .= '<td>'.$d[$i]->value.'</td>';
}
$html .= '</tr>';
}
$html .= '</table>';
答案 2 :(得分:0)
检查以下代码。希望它适合你。
<?php
$data =array(
'q1'=>array(1, 2, 5, 6, 2),
'q2'=>array(1, 2, 5, 6, 2),
'q3'=>array(1, 2, 5, 6, 2),
'q4'=>array(1, 2, 5, 6, 2)
);
$html = '<table>';
$html.='<tr>';
$main_keys =array_keys($data);
foreach($data as $key=>$v)
{
$html.='<tr>';
foreach($main_keys as $k)
{
$html.='<td>'.$k.'</td>';
}
$html.='</tr>';
for($i=0;$i<count($v);$i++)
{
$html.='<tr>';
foreach($main_keys as $k)
{
$html.='<td>'.$data[$k][$i].'</td>';
}
$html.='</tr>';
}
break;
}
$html .= '</table>';
?>