<?php

//Лиличка
error_reporting(-1);
mb_internal_encoding('utf-8');

$text = "Дым табачный воздух выел.
Комната -
глава в крученыховском аде.
Вспомни -
за этим окном
впервые
руки твои, исступлённый, гладил.
Сегодня сидишь вот,
сердце в железе.
День ещё -
выгонишь,
может быть, изругав.
В мутной передней долго не влезет
сломанная дрожью рука в рукав.";

$matches = preg_split("#\R#u", $text);

//находим длину самой длинной строки в массиве
$lengths = array_map(function ($match) {
    return mb_strlen($match);
}, $matches);
$max_length = max($lengths);

for ($i = 0; $i < $max_length; $i++) {
    foreach ($matches as $match) {
        $str = mb_substr($match, $i, 1);
        if ($str == '') {
            $str = ' ';
        }
        echo $str . " | ";
    }
    echo "\n";
}

