2009-09-26 6 views
14

Helo,

je le tableau

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

suivant, je veux produire une sortie telle que 'a\nb\nc\n'. Le problème est que lorsque j'utilise

implode('\n', $appArray) 

Je reçois 'a\\nb\\nc\\n' (notez l'antislash).

Une idée pour résoudre ce problème?

Répondre

47

Etes-vous sûr de ne pas avoir l'intention de le faire: implode("\n", $appArray)? Les caractères de nouvelle ligne ne sont pas réellement traités comme des caractères de nouvelle ligne lorsqu'ils sont encapsulés dans des guillemets simples.

+1

Je serai fou, j'utilisé guillemet simple qui il était pas du travail que vu votre poste. –

+0

a sauvé la journée .. merci beaucoup – zeetit

3

En fait, en guillemets simples \ n signifie \ n (littéralement), pas retour chariot. Essayez d'utiliser des guillemets doubles dans implode().

3

Essayez d'entourer le \n entre guillemets.

On dirait qu'ils sont interprétés comme deux caractères: une barre oblique inverse et un 'n', et la barre oblique inverse est échappée avec un autre antislash.

0

Vous pouvez l'essayer.

$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

utilisation PHP_EOL (fin de ligne):

implode(PHP_EOL, $array); 
Questions connexes