我有以下脚本,它从MySQL查询创建一个多维数组,并根据类别打印结果:
脑脊液(感染)
葡萄糖血清蛋白(尿液)
血气
碳酸氢盐(液体)
pH(液体)
氧分压(张力)(pO2)
肌酐清除率 >肌酐(液体)
肌酐(24小时尿)
$test_groups = array();
$query = "SELECT * FROM
lab_test,
model_lab_test_lookup,
lab_test_group
WHERE
lab_test.lab_test_pk = model_lab_test_lookup.lab_test_fk
AND
model_lab_test_lookup.lab_test_group_fk = lab_test_group.lab_test_group_pk
AND
model_lab_test_lookup.pathway_fk = '$pathway'
GROUP BY lab_test.lab_test_pk";
$result = mysql_query($query, $connection) or die(mysql_error());
while ($row = mysql_fetch_assoc($result)){
$test_groups[$row['group_name']][] = $row['lab_test'];
}
foreach($test_groups as $group_name => $tests){
echo '<strong>' . $group_name . '</strong><br />';
foreach($tests as $test){
echo $test . '<br />';
}
echo '<p>';
}
现在我想添加除$row['lab_test']
(测试名称)之外的列,例如$row['lab_test_pk']
和$row['interval']
,并且能够像foreach
中那样访问这些列}循环。
喜欢
$test_groups[$row['group_name']] = array(
'test_pk' => $row['lab_test_pk'],
'test_name' => $row['lab_test'],
'interval' => $row['interval']
);
这样做的正确方法是什么,然后访问最后一个foreach循环中添加的列?
答案 0 :(得分:1)
$row['lab_test_pk'].','.$row['lab_test'].','.$row['interval'];
尝试以上行并使用。追加。
答案 1 :(得分:1)
使用@ N.M.N提供的部分解决方案我有以下工作:
while ($row = mysql_fetch_assoc($result)){
$test_groups[$row['group_name']][] = $row['lab_test_pk'].','.$row['lab_test'].','.$row['interval'];
}
foreach($test_groups as $group_name => $tests){
echo '<strong>' . $group_name . '</strong><br />';
foreach($tests as $test){
list($test_pk, $test_name, $test_interval) = explode(',', $test);
echo $test_pk . '<br />';
echo $test_name . '<br />';
echo $test_interval . '<br />';
}
echo '<p>';
}