2012-10-01 22 views
0

我有一個數組: -如何顯示,只有當他們出現在另一個陣列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>'; 

我試着用到位$值$密鑰,並使用in_array()方法來檢查,如果在$頭存在$認爲場的關鍵,但即使給我的價值,而不是名稱領域的。有什麼方法可以檢查字段名是否存在於數組中,我打印出該值,否則我不會。

+2

請數組變量*一些樣本數據隔離您的問題只*,添加數據庫交互和HTML輸出更高版本。那麼您應該儘快找到解決方案。 – hakre

+0

我將來會記住這一點。謝謝。 – user1439090

回答

0

如何以下

foreach($view as $column => $value){ 
    if(in_array($column, $headers)){ 
     echo '<td>' . $value . '</td>'; 
    } 
} 
相關問題