Зависит от ситуации. В вашем примере - второй. Но, в случае с кодом ниже - первый.
foreach($houses as $house) {
$current_floor = $house[$floor];
$rooms_count = count($current_floor['flats']['1-room']); // например, только 1-комнатные
$total_rooms += $rooms_count;
/* вышенаписанное гораздо лучше, чем
$total_rooms += count($house[$current_floor]['flats']['1-room']);
*/
}
В целом, когда чувствуете, что код становится нечитабельным, некрасивым и просто неудобным для сопровождения, предпринимайте адекватные действия для исправления ситуации, в том числе и создавая промежуточные переменные, чтобы визуально разделить код.