【发布时间】:2020-02-05 00:21:38
【问题描述】:
我在 codeigniter 中执行下面的查询,返回 4 行:
$available_rooms = $this->db->query("SELECT id_room as id, ea_rooms.name as name FROM ea_rooms_services WHERE id_service =" . $service_id)->result_array();
输出例如:
{
{id:1, name:a}
{id:2, name:b}
{id:3, name:c}
{id:4, name:d}
}
我有一个房间 ID 为 $occupiedRooms(例如 {0=>1, 1=>2})的数组,其填充方式如下:
$occupiedRooms = array();
foreach ($listing as $element){
... SOMECODE
if ($id_room != null)
$occupiedRooms[] = $id_room;
}
我想取消设置$available_rooms 中与$occupiedRooms 中具有相同ID 的所有行。
预期输出:
{
{id:3, name:c}
{id:4, name:d}
}
我正在使用下面的代码,但它不起作用
foreach ($available_rooms as $elementKey => $element){
if(in_array($element['id'], $occupiedRooms)){
unset($available_rooms[$elementKey]);
}
}
我也用下面的代码尝试了array_filter,但它也没有用:
foreach ($occupiedRooms as $id){
$available_rooms = array_filter($available_rooms, function($room) use($id)
{
return $room['id'] != $id;
});
}
【问题讨论】:
-
您的 $occupiedRooms 是否正确?
标签: php arrays codeigniter