0

我有一个数组:-

$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() 方法检查 $view 的该字段的键是否存在于 $header 中,但即使这样也给了我值而不是字段的名称。有什么方法可以检查字段名称是否存在于数组中,我打印出值,否则我不打印。

4

1 回答 1

0

下面怎么样

foreach($view as $column => $value){
    if(in_array($column, $headers)){
        echo '<td>' . $value . '</td>';
    }
}
于 2012-10-01T08:34:49.597 回答