Hallo habe ich ein PHP-Array wie diesePHP Kreuztabellen- Formatierung von Array
$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;
Hier 118 und 108 sind subject_id Ich versuche, es zu formatieren, wie diese
student | English | Software Engeneering |
| int. mark | ext. mark | int. mark | ext. mark |
___________________________________________________________
Josh | 55 | 10 | 45 | 12
Matt | 45 | 12 | 50 | 15
I
versuchtecho "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>";
}
Es funktioniert gut, aber wenn ich die Position des Array-Element der Tabelle wie
ändern$table['Josh'][118]['int'] =55;
$table['Josh'][108]['int'] =45;
$table['Josh'][118]['ext'] = 10;
$table['Josh'][108]['ext'] = 12;
Es gibt kein korrektes Ergebnis. Gibt es trotzdem, dass das Ergebnis immer korrekt ist?
Vielen Dank für Ihre jede mögliche Hilfe und Anregungen
Ich gehe davon aus, dass Sie ** diese Werte nicht standardmäßig hart kodieren, sondern aus einer Datenbank ziehen? Das Problem, das Sie hier haben, ist, dass Sie erwarten, dass alles in bester Ordnung ist. Wenn Sie erwarten, dass etwas nicht in Ordnung ist, müssen Sie es zuerst sortieren. Wenn das ein Fall ist, den Sie erwarten, dann gebe ich Ihnen gerne weitere Hilfe, wenn Sie es brauchen. – Augwa
Ja genau ich ziehe diesen Wert aus der Datenbank. Ich werde Ihre Hilfe sehr schätzen. – sanu
Ok, also müssen Sie nur sicherstellen, dass Sie Ihre Datenbankwerte korrekt sortieren ... d. H. 'ORDER BY student, class_id, mark_type' – Augwa