comment afficher les valeurs de l'objet stdclass uniquement si elles sont présentes dans un autre tableau [fermé]
Question
J'ai un tableau :-
$headers=array(
'a',
'b',
'c',
);
et dire un objet que j'ai obtenu de la base de données :-
$sql = 'Select * from my_table';
$views = $DB->get_records_sql($sql);
Maintenant, mon objectif est d'afficher les en-têtes dans le tableau et d'afficher les valeurs dans le tableau uniquement si la clé du champ dans $view in following correspond à $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>';
J'ai essayé d'utiliser $key à la place de $value et d'utiliser la méthode in_array() pour vérifier si la clé de ce champ de view view existe dans $header, mais même cela me donne la valeur plutôt que le nom du champ.Existe-t-il un moyen de vérifier si le nom du champ existe dans le tableau, j'imprime la valeur, sinon je ne le fais pas.
La solution
Que diriez-vous de ce qui suit
foreach($view as $column => $value){
if(in_array($column, $headers)){
echo '<td>' . $value . '</td>';
}
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow