我有以下数组
$appArray=array('a', 'b', 'c');
我想生成'a\nb\nc\n'
等输出。麻烦的是当我使用
implode('\n', $appArray)
我得到'a\\nb\\nc\\n'
(注意额外的反斜杠)。
知道如何解决这个问题吗?
答案 0 :(得分:50)
您确定不打算:implode("\n", $appArray)
吗?当封装在“单引号”中时,换行符实际上不会被视为换行符。
答案 1 :(得分:7)
使用PHP_EOL(行尾):
implode(PHP_EOL, $array);
答案 2 :(得分:3)
实际上,在单引号中\ n表示\ n(字面意思),而不是回车。尝试在implode()中使用双引号。
答案 3 :(得分:3)
请尝试将\n
括在双引号中。
听起来他们被解释为两个字符:反斜杠和'n',反斜杠用另一个反斜杠转义。
答案 4 :(得分:0)
你可以试试这个。
$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