Salut J'ai un tableau PHP comme celui-ciPHP crosstab mise en forme de tableau
$table=array();
$subject_names=array();
$subject_names[118]="English";
$subject_names[108]="Software Engeneering";
$table['Josh'][118]['int'] =55;
$table['Josh'][118]['ext'] = 10;
$table['Josh'][108]['int'] =45;
$table['Josh'][108]['ext'] = 12;
$table['Matt'][118]['int'] =45;
$table['Matt'][118]['ext'] = 12;
$table['Matt'][108]['int'] =50;
$table['Matt'][108]['ext'] = 15;
Ici 118 et 108 sont id_sujet Je suis en train de le formater comme celui-ci
student | English | Software Engeneering |
| int. mark | ext. mark | int. mark | ext. mark |
___________________________________________________________
Josh | 55 | 10 | 45 | 12
Matt | 45 | 12 | 50 | 15
J'ai essayé
echo "Student Name\t";
foreach($subject_names as $sub_name)
{
echo "$sub_name\t";
}
echo "<br>";
foreach($table as $sname => $subjects){
echo "$sname\t";
foreach($subjects as $subject_name => $types)
{
foreach($types as $marks)
{
echo "$marks\t";
}
}
echo "<br>";
}
Cela fonctionne très bien mais si je change la position de l'élément tableau de la table comme
$table['Josh'][118]['int'] =55;
$table['Josh'][108]['int'] =45;
$table['Josh'][118]['ext'] = 10;
$table['Josh'][108]['ext'] = 12;
Cela ne donnera pas un résultat correct. Est-il de toute façon pour assurer que le résultat est toujours correct.
Merci pour toute votre aide et suggestions
Je vais supposer que vous ** ne codifiez pas ces valeurs par défaut, mais que vous les extrayez d'une base de données? Le problème que vous avez ici est que votre code s'attend à ce que tout soit dans un ordre parfait. Si vous attendez des choses en panne, vous devrez d'abord les trier. Si c'est un cas que vous attendez, je vous donnerai volontiers plus d'aide si vous en avez besoin. – Augwa
Oui, exactement, je tire ces valeurs de la base de données. J'apprécierai grandement votre aide. – sanu
Ok, donc vous devez juste vous assurer que vous triez correctement les valeurs de votre base de données ... c'est-à-dire 'ORDER BY student, class_id, mark_type' – Augwa