我有一个数组: -
$headers=array(
'a',
'b',
'c',
);
并说出我从数据库获得的对象: -
$sql = 'Select * from my_table';
$views = $DB->get_records_sql($sql);
现在我的目标是在表中显示标题,并且只有当以下$ view中字段的键与$ header匹配时才显示表中的值。
echo '<table border="1">';
echo '<thead>';
echo '<tr>';
foreach($headers as $header){
echo '<th>';
echo $header;
echo '</th>';
}
echo '</tr>';
echo '</thead>';
echo '<tbody>';
foreach ($views as $view){
echo '<tr>';
foreach($view as $column=>$value){
echo '<td>';
echo $value;
echo '</td>';
}
echo '</tr>';
}
echo '</table>';
我尝试使用$ key代替$ value并使用in_array()方法来检查$ header中该$ field字段的键是否存在,但即便如此,也会给出值而不是字段的名称。有什么方法可以检查数组中是否存在字段名称,我打印出值,否则我没有。
答案 0 :(得分:0)
以下
怎么样?foreach($view as $column => $value){
if(in_array($column, $headers)){
echo '<td>' . $value . '</td>';
}
}