У меня есть следующий код:
$output2 = 'text

more text

ja';
$explode = explode('

', $output);
Это прекрасно работает и $explode
массив печатает следующее:
Array
(
[0] => text
[1] => meer text
[2] => ja
)
Однако следующий код не работает, и я не знаю, как это исправить:
$output = 'text



more text



ja';
$explode = explode('

', $output);
$explode
массив печатает следующее:
Array
(
[0] => text



 //more text



ja
)
Это может показаться странным вопросом. Но первый пример — это тест, который я сделал вручную. Но второй пример — это то, что фактически возвращается из базы данных.
Ты можешь использовать preg_split
разделить вашу строку:
<?php
$output = 'text



more text



ja';
$explode = preg_split('/(
|(\r\n|\r|\n))+/', $output, -1, PREG_SPLIT_NO_EMPTY);
демо: https://ideone.com/KU0v9t (ideone) или же https://eval.in/887393 (eval.in)
Следующее решение разделить на двойной 

:
$output = 'text



more text



ja

nein';
$explode = preg_split('/(\r\n|\r|\n)*(
(\r\n|\r|\n)*){2}/', $output, -1, PREG_SPLIT_NO_EMPTY);
Добавление одной строки в ваш код $output =str_replace("\r\n","",$output );
объединить всю строку в одну строку, чтобы она понравилась вашему первому примеру.
$output =str_replace("\r\n","",$output );
$explode = explode('

', $output);
print_r($explode);
Живая демоверсия: https://eval.in/887371
$explode = preg_split('/
\s*
/', $output);
нормализуйте вашу строку, удалив все новые строки, такие как символы:
$output = trim(preg_replace('/\s+/', '',$output));
затем взорвать его.
Как говорит User2486, проблема в том, что есть некоторые скрытые символы, которые вы не смотрите, такие как \ n и \ r
В вашем первом примере у вас есть
'text

more text

ja'
а во втором
'text\r\n
\r\n
more text\r\n
\r\n
ja'