Я выполняю приведенный ниже запрос в 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}
}
У меня есть массив с идентификаторами номеров $occupiedRooms
(например, {0=>1, 1=>2}
) который заполняется следующим образом:
$occupiedRooms = array();
foreach ($listing as $element){
... SOMECODE
if ($id_room != null)
$occupiedRooms[] = $id_room;
}
Я хочу сбросить все строки в $available_rooms
, которые имеют одинаковые идентификаторы в $occupiedRooms
.
Ожидаемый результат:
{
{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;
});
}