PHP:implode('\ n',$ appArray)生成额外的'\'

时间:2009-09-26 06:57:02

标签: php

我有以下数组

$appArray=array('a', 'b', 'c');

我想生成'a\nb\nc\n'等输出。麻烦的是当我使用

implode('\n', $appArray)

我得到'a\\nb\\nc\\n'(注意额外的反斜杠)。

知道如何解决这个问题吗?

5 个答案:

答案 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