Стоит ли создавать дополнительные переменные для лучшей читаемости кода?
Зависит от ситуации. В вашем примере - второй. Но, в случае с кодом ниже - первый.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']);
    */
}
В целом, когда чувствуете, что код становится нечитабельным, некрасивым и просто неудобным для сопровождения, предпринимайте адекватные действия для исправления ситуации, в том числе и создавая промежуточные переменные, чтобы визуально разделить код.
А проще так:$total = array_column($prices, $type);
$total = array_sum($total);