<?php

error_reporting(-1);
mb_internal_encoding('utf-8');

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

$regexp = "/[\n]/u";
$parts = preg_split($regexp, $text);

for ($i = 0; $i <= count($parts) - 1; $i++) {
    $parts[$i] = preg_split("//u", $parts[$i], -1, PREG_SPLIT_NO_EMPTY);
}

$length = count($parts);

for ($j = 0; $j <= count($parts[$j]) - 1; $j++) {
    for ($i = 0; $i <= $length - 1; $i++) {
        echo "{$parts[$i][$j]} |";
    }
    echo "\n";
}
