Ответ 1
Вы уверены, что не собираетесь: implode("\n", $appArray)
? Символы новой строки на самом деле не считаются символами новой строки при инкапсуляции в "одиночные кавычки".
Helo,
У меня есть следующий массив
$appArray=array('a', 'b', 'c');
Я хочу создать вывод, например 'a\nb\nc\n'
. Проблема в том, что когда я использую
implode('\n', $appArray)
Я получаю 'a\\nb\\nc\\n'
(обратите внимание на дополнительную обратную косую черту).
Любая идея, как это исправить?
Вы уверены, что не собираетесь: implode("\n", $appArray)
? Символы новой строки на самом деле не считаются символами новой строки при инкапсуляции в "одиночные кавычки".
Используйте PHP_EOL (конец строки):
implode(PHP_EOL, $array);
Собственно, в одинарных кавычках \n означает\n (буквально), а не возврат каретки. Попробуйте использовать двойные кавычки в implode().
Попробуйте включить \n
в двойных кавычках.
Похоже, они интерпретируются как два символа: обратная косая черта и "n", а обратная косая черта сбегает с другой обратной косой чертой.
Вы можете попробовать это.
$selected = implode(",\n", preg_replace('/^(.*?)$/', "'$1'", $filters['selected_model']));
SELECT DISTINCT(D.model_id) AS MODEL_ID, COUNT(*) AS viewCount, t.title FROM download_logs AS D LEFT JOIN templates AS t ON D.model_id = t.id
WHERE D.model_type IN ('.$selected.') GROUP BY D.model_id