2009-09-26 5 views
14

मेरा अनुरोध स्वीकार करने,

उत्पन्न करता है मैं निम्नलिखित सरणी

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

मैं 'a\nb\nc\n' के रूप में उत्पादन में इस तरह के निर्माण करने के लिए चाहते हैं। दिक्कत यह है कि जब मैं

implode('\n', $appArray) 

का उपयोग मैं 'a\\nb\\nc\\n' मिल (अतिरिक्त बैकस्लैश ध्यान दें) है।

कोई विचार यह कैसे ठीक करें?

उत्तर

47

क्या आप वाकई इरादा नहीं कर रहे हैं: implode("\n", $appArray)? 'सिंगल कोट्स' में समाहित होने पर न्यूलाइन अक्षरों को वास्तव में न्यूलाइन वर्णों के रूप में नहीं माना जाता है।

+1

मैं पागल हो जाएगा, मैं एकल उद्धरण जब तक आपकी पोस्ट देखी है जो यह काम नहीं कर रहा था इस्तेमाल किया। –

+0

दिन बचाया .. बहुत बहुत धन्यवाद – zeetit

3

वास्तव में, एकल उद्धरण \ n का अर्थ है \ n (शाब्दिक रूप से), कैरिज रिटर्न नहीं। Implode() में डबल कोट्स का उपयोग करने का प्रयास करें।

3

डबल कोट्स में \n संलग्न करने का प्रयास करें।

ऐसा लगता है कि उन्हें दो पात्रों के रूप में व्याख्या किया जा रहा है: बैकस्लैश और 'एन', और बैकस्लैश एक और बैकस्लैश से बच निकला है।

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 
6

उपयोग PHP_EOL (पंक्ति के अंत):

implode(PHP_EOL, $array);