三次元配列のソートなど

三次元の配列に関してもforeach文を二段階にすることで並び替えや重複のチェックが可能です。

またforeach文は以下のような形にするとよりコンパクトなコードになります。

foreach($building_ids as $building_id){
  $sort_array = $room_array[$building_id];
  ....
}

foreach($room_array as $building_id => $sort_array){
  ....
}
  $new_room_ids = array();

  foreach($room_array as $building_id => $layouts) {
    foreach($layouts as $layout => $rooms){
      $sort = array();
      foreach ($rooms as $room) {
        $sort[] = $room['rent'];
      }
      array_multisort($sort, SORT_ASC, SORT_NUMERIC, $rooms);
      $new_room_ids[] = $rooms[0]['ID'];
    }
  }