【发布时间】:2015-04-12 15:23:14
【问题描述】:
我有一个多维数组$rows,它返回如下结果;我创建了基于 array_keys 的查询。现在我面临的问题是,如果没有空床,$rows 可能会或可能不会返回某些行,而我的所有查询都需要折腾。
我曾尝试使用in_array 函数,但它似乎不适用于多维数组。
array (size=6)
0 =>
array (size=2)
'room_category' => string 'MALE GENERAL WARD' (length=17)
'vacant_beds' => string 'MG-5' (length=4)
1 =>
array (size=2)
'room_category' => string 'FEMALE GENERAL WARD' (length=19)
'vacant_beds' => string 'FG-2,FG-3,FG-4' (length=14)
2 =>
array (size=2)
'room_category' => string 'MOTHER CHILD WARD' (length=17)
'vacant_beds' => string 'MC-1,MC-3,MC-4' (length=14)
3 =>
array (size=2)
'room_category' => string 'NICU' (length=4)
'vacant_beds' => string 'NICU-8,NICU-4,NICU-5,NICU-6,NICU-1,NICU-7,NICU-2' (length=48)
4 =>
array (size=2)
'room_category' => string 'CLASSIC' (length=7)
'vacant_beds' => string 'CL-9,CL-4,CL-5,CL-7,CL-8' (length=24)
5 =>
array (size=2)
'room_category' => string 'DELUXE' (length=6)
'vacant_beds' => string 'DLX-6,DLX-3,DLX-4,DLX-5' (length=23)
即使特定病房没有空置,我应该采取什么方法或确保它返回一行。
我的 $rows 代码是这样的:
select `rct`.`room_category` AS `room_category`,
group_concat(`rn`.`room_name` separator ',') AS `vacant_beds`
from ((`room_name` `rn` join `room_category`
`rct` on((`rn`.`room_category` = `rct`.`id`)))
left join `patient_detail` `pd` on(((`rn`.`id` = `pd`.`bed_type`)
and (isnull(`pd`.`discharge_date`) or (now() between `pd`.`admission_date` and `pd`.`discharge_date`)))))
where isnull(`pd`.`id`) group by `rn`.`room_category`
【问题讨论】:
-
嗨 Marc - 问题标题可能重复,但我要求提供其他解决方案,例如是否可以返回空值的数组键。