如何仅在stdclass对象存在于另一个数组中时才显示它们

时间:2012-10-01 08:26:08

标签: php field key-value stdclass

我有一个数组: -

$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字段的键是否存在,但即便如此,也会给出值而不是字段的名称。有什么方法可以检查数组中是否存在字段名称,我打印出值,否则我没有。

1 个答案:

答案 0 :(得分:0)

以下

怎么样?
foreach($view as $column => $value){
    if(in_array($column, $headers)){
        echo '<td>' . $value . '</td>';
    }
}