嗨格式化我有一个PHP数组这样PHP交叉从阵列
$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;
这里118和108 subject_id我想这样
student | English | Software Engeneering |
| int. mark | ext. mark | int. mark | ext. mark |
___________________________________________________________
Josh | 55 | 10 | 45 | 12
Matt | 45 | 12 | 50 | 15
我试图
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>";
}
进行格式化
它工作正常,但如果我改变表的数组项目的位置,如
$table['Josh'][118]['int'] =55;
$table['Josh'][108]['int'] =45;
$table['Josh'][118]['ext'] = 10;
$table['Josh'][108]['ext'] = 12;
它不会给出正确的结果。无论如何要确保结果总是正确的。
感谢您的帮助和建议
我会假设你**不是**默认情况下硬编码这些值,而是从数据库中拉出来?你在这里遇到的问题是你的代码期望一切都是完美的。如果您预期的东西不按顺序排列,您需要先排序。如果您希望发生这种情况,那么如果您需要,我会很乐意提供更多帮助。 – Augwa
是的,我正在从数据库中提取这些值。我将不胜感激您的任何帮助。 – sanu
好的,所以你只需要确保你正确地对你的数据库值进行排序......即'ORDER BY student,class_id,mark_type' – Augwa