2011-03-26 13 views
13

मैंपीएचपी हर आइटम के लिए अल्पविराम जोड़े लेकिन पिछले एक

foreach ($_GET as $name => $value) { 
    echo "$value\n"; 
} 

की तरह एक पाश है और मैं प्रत्येक आइटम के बीच में एक अल्पविराम जोड़ने के लिए तो यह इस तरह समाप्त होता है चाहता हूँ।

var1, var2, var3 

जब से मैं foreach उपयोग कर रहा हूँ मैं कोई रास्ता बताने के लिए यात्रा संख्या मैं पर हूँ है।

मैं यह कैसे कर सकता हूं?

+0

कोई रास्ता नहीं है? आप मैन्युअल रूप से अपने कोड में एक काउंटर जोड़ सकते हैं। –

+0

उसका परिणाम 'name: var1, name: var2, name: var3' नहीं होना चाहिए? – kjy112

+0

मेरी निगरानी के लिए खेद है, मैं अपने स्निपेट के माध्यम से सभी तरह से नहीं देखा था। – giodamelio

उत्तर

0

क्षमा करें मैंने अपना प्रश्न ठीक से नहीं बताया। awnser कि मेरे लिए काम किया

implode(', ', $_GET); 

धन्यवाद, giodamelio

+0

मुझे कल तक नहीं जाने देंगे। – giodamelio

+0

woah आप केवल 14 हैं। इस पर अच्छा रखें। – kjy112

+0

@ kjy112 धन्यवाद मैं निश्चित रूप से करूंगा। प्रोग्रामिंग कमाल है :) – giodamelio

3
$comma_separated = implode(", ", $_GET); 

echo $comma_separated; 

आप फटना का उपयोग करें और लक्ष्य को हासिल

+0

$ के बारे में क्या नाम? –

+0

सोचा कि वह सिर्फ मूल्य – kjy112

+0

क्यों चाहते हैं आप अपना प्रश्न क्यों नहीं पढ़ते? –

0

मैं आम तौर पर इस (छद्म कोड) की तरह कुछ करना चाहते हैं कि कर सकते हैं:

myVar 

for... { 
    myVar = i + "," 
} 

myVar = trimOffLastCharacter(myVar) 

echo myVar 
6
इस तरह

:

$total = count($_GET); 
$i=0; 
foreach ($_GET as $name => $value) { 
    $i++; 
    echo "$name: $value"; 
    if ($i != $total) echo', '; 
} 

की व्याख्या: आपको गिनती() द्वारा सभी मानों की कुल गणना मिलती है। Foreach() लूप चलाते समय, आप पुनरावृत्तियों की गणना करते हैं। लूप के अंदर आप इसे 'गूंजने के लिए कहते हैं,' जब पुनरावृत्ति अंतिम नहीं है (सभी मानों की कुल गणना के बराबर नहीं है)।

30

बस अपने foreach के साथ अपने उत्पादन का निर्माण और फिर उस सरणी और आउटपुट परिणाम फटना:

$out = array(); 
foreach ($_GET as $name => $value) { 
    array_push($out, "$name: $value"); 
} 
echo implode(', ', $out); 
+0

हमम .. विशाल सरणी पर प्रदर्शन? – Fr0zenFyr

+0

@ Fr0zenFyr, वास्तव में प्रदर्शन पर असर डालने के लिए आपके सरणी को काफी बड़ा होना होगा। और यदि आपके पास इतनी बड़ी सरणी है, तो क्यों आपके आइटम की अल्पविराम से अलग स्ट्रिंग रखना चाहेंगे? यह सब संदर्भ पर निर्भर करता है। कोडिंग की अद्भुत दुनिया में, जादुई एक-आकार-फिट-सभी समाधान जैसी कोई चीज़ नहीं है। मैं आपको एक संबंधित प्रश्न पूछने के लिए आमंत्रित करता हूं, आपकी सटीक समस्या का वर्णन करता हूं यदि यह * आपके लिए एक व्यावहारिक समाधान नहीं है। –

+0

मेरे पास वास्तव में यह समस्या नहीं है, अगर कोई 'सीएसवी' बनाना चाहता है तो बड़े सरणी के साथ संभावना की जांच कर रहा था, कहें। सीएसवी के लिए – Fr0zenFyr

1

आप भी इसे इस तरह से कर सकता है:

$output = ''; 
foreach ($_GET as $name => $value) { 
    $output = $output."$name: $value, "; 
} 
$output = substr($output, 0, -2); 

जिसमें केवल एक विशाल स्ट्रिंग है कि बनाता है आप आउटपुट कर सकते हैं। वास्तव में विभिन्न शैलियों के लिए विभिन्न तरीकों।

संबंधित मुद्दे