fork download
  1. <?php
  2. $text = <<<EOF
  3. Дым табачный воздух выел.
  4. Комната —
  5. глава в крученыховском аде.
  6. Вспомни —
  7. за этим окном
  8. впервые
  9. руки твои, исступлённый, гладил.
  10. Сегодня сидишь вот,
  11. сердце в железе.
  12. День ещё —
  13. выгонишь,
  14. может быть, изругав.
  15. В мутной передней долго не влезет
  16. сломанная дрожью рука в рукав.
  17. EOF;
  18.  
  19. $parts = preg_split("/[\n]/u", $text);
  20.  
  21. $chars = array();
  22. foreach ($parts as $key => $char) {
  23. $chars[$key] = preg_split("//u", $char, -1, PREG_SPLIT_NO_EMPTY);
  24. }
  25.  
  26. $length = count($chars);
  27. var_dump(count($chars[0]) - 1);
  28.  
  29. // если выставить $j <= 40; то отработаеются полностью все строки
  30. for ($j = 0; $j <= count($chars[$j]) - 1; $j++) {
  31. for ($i = 0; $i <= $length - 1; $i++) {
  32. if (isset($chars[$i][$j])) {
  33. echo " {$chars[$i][$j]} |";
  34. } else {
  35. echo " |";
  36. }
  37. }
  38. echo "\n";
  39. }
Success #stdin #stdout 0.03s 52480KB
stdin
Standard input is empty
stdout
int(24)
 Д | К | г | В | з | в | р | С | с | Д | в | м | В | с |
 ы | о | л | с | а | п | у | е | е | е | ы | о |   | л |
 м | м | а | п |   | е | к | г | р | н | г | ж | м | о |
   | н | в | о | э | р | и | о | д | ь | о | е | у | м |
 т | а | а | м | т | в |   | д | ц |   | н | т | т | а |
 а | т |   | н | и | ы | т | н | е | е | и |   | н | н |
 б | а | в | и | м | е | в | я |   | щ | ш | б | о | н |
 а |   |   |   |   |   | о |   | в | ё | ь | ы | й | а |
 ч | — | к | — | о |   | и | с |   |   | , | т |   | я |
 н |   | р |   | к |   | , | и | ж | — |   | ь | п |   |