我嵌套了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