2009-09-26 14 views
14

Helo,

tengo la siguiente matriz

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

Quiero producir una salida como 'a\nb\nc\n'. El problema es que cuando uso

implode('\n', $appArray) 

consigo 'a\\nb\\nc\\n' (nótese la barra inversa extra).

¿Alguna idea de cómo solucionar esto?

Respuesta

47

¿Estás seguro de que no tienes la intención de: implode("\n", $appArray)? Los caracteres de nueva línea no se tratan realmente como caracteres de nueva línea cuando se encapsulan en 'comillas simples'.

+1

estaré loco, lo usa sola cita que no se funcionaba hasta vio la publicación. –

+0

salvó el día ... muchas gracias – zeetit

3

En realidad, en comillas simples \ n significa \ n (literalmente), no retorno de carro. Intenta usar comillas dobles en implode().

3

Intente adjuntar el \n entre comillas dobles.

Parece que se interpretan como dos caracteres: una barra invertida y una 'n', y la barra diagonal inversa se escapa con otra barra inclinada invertida.

0

Puede intentarlo.

$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 
6

Uso PHP_EOL (fin de línea):

implode(PHP_EOL, $array); 
Cuestiones relacionadas