我嵌套了foreach
循环显示嵌套数组中的MySQL记录。从MySQL查询嵌套数组 - 逻辑显示在foreach循环中的记录
while ($row = mysql_fetch_array($result)) {
$departments[$row['department_name']][$row['group_name']][] = $row['lab_test'] . ',' . $row['result'] . ',' . $row['um'] . ',' . $row['reference_interval'];
}
foreach($departments as $department_name => $groups){
echo "<tr class='department'><td>" . $department_name . "</td></tr>";
foreach($groups as $group_name => $tests){
echo "<tr class='test_group'><td>" . $group_name . "</td></tr>";
foreach($tests as $test){
list($test_name, $test_result, $test_um, $test_interval) = explode(',', $test);
echo "<tr class='test_item'><td>" . $test_name . "</td><td>" . $test_result . "</td><td>" . $test_um . "</td><td>" . $test_interval . "</td></tr>";
}
}
echo "<tr><td> </td><td> </td><td> </td><td> </td></tr>";
}
该工程确定,但我想改变它,以便$group_name
只显示,如果它不等于$test_name
。直到下一个foreach
循环才会启动问题$test_name
。
感谢您...看起来更清洁和可管理...我会给它一个去。 – IlludiumPu36 2015-03-19 02:46:13
我看不到如何让测试显示在其关联的测试组名称下......这就是为什么我使用嵌套的foreach循环。 – IlludiumPu36 2015-03-19 02:50:04
我明白为什么,但有一个更干净的方式来做你想做的事情。你可以做的最重要的事情之一是,如果你有一个测试名称列表作为单独的数据,那么把这些测试名称放到一个不同的数组中,而不是把它们放在'$ departments'数组中。所以你应该有'$ departments'和'$ test_group_names' – 2015-03-19 02:52:27