Php 从具有键和值的数组创建垂直表
例如,我有以下数组:Php 从具有键和值的数组创建垂直表,php,arrays,Php,Arrays,例如,我有以下数组: array( 'q1'=>array(1, 2, 5, 6, 2), 'q2'=>array(1, 2, 5, 6, 2) ); 从该数组中,我想创建一个垂直html表,如下所示: +----+----+ | q1 | q2 | +----+----+ | 1 | 1 | | 2 | 2 | | .. | .. | | 2 | 2 | +----+----+ 如何实现这一目标?我坚持使用simpleforeach() $html=
array(
'q1'=>array(1, 2, 5, 6, 2),
'q2'=>array(1, 2, 5, 6, 2)
);
从该数组中,我想创建一个垂直html表,如下所示:
+----+----+
| q1 | q2 |
+----+----+
| 1 | 1 |
| 2 | 2 |
| .. | .. |
| 2 | 2 |
+----+----+
如何实现这一目标?我坚持使用simpleforeach()
$html='';
foreach($header=>$cell形式的数据){
$html.=''.$header';
foreach($单元格作为$行){
$html.=''.$row->value';
}
}
$html.='';
如果$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>';
$html='';
$html.='q1q2';
foreach($data['q1']作为$index=>$record){
$html.='';
$html.=''.$record';
$html.=''.$data['q2'][$index].';
$html.='';
}
$html.='';
我自己解决了。这是解决办法
$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>';
$html='';
$html.='';
foreach($key=>$cell形式的数据){
$html.=''.$key.';
}
$html.='';
$first=重置($data);
对于($i=0;$i值';
}
$html.='';
}
$html.='';
检查下面的代码。希望它对您有用
<?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>';
?>
你能打印($data)吗?@aldrin27:这是来自Yii查询的标准对象。构建标题,然后遍历行。q1和q2只是一个示例,实际上标题可以是不同的,超过两个不同名称的标题。
<?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>';
?>