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>';

$valueの代わりに$keyを使用し、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 に答える