2011-03-26 20 views
13

son benPHP her öğeye virgül ekleyin ama bir

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

gibi bir döngü var Ve ben böyle biter böylece her öğe arasına virgül eklemek istiyorum.

var1, var2, var3 

Ben foreach kullandığım için ben üzerinde neysem iterasyon sayısı anlatmak için hiçbir yolu yoktur.

Bunu nasıl yapabilirim?

+0

Hiçbir şekilde giodamelio nedir? Kodunuza manuel olarak bir sayaç ekleyebilirsiniz. –

+0

onun sonucu 'isim: var1, isim: var2, isim: var3' olmalı? – kjy112

+0

Gözetim için özür dilerim, snippet'imin sonuna kadar bakmadım. – giodamelio

cevap

0

Üzgünüm, sorumu doğru şekilde ifade etmedim. benim için çalıştı Awnser

implode(', ', $_GET); 

sayesinde

+0

, yarına kadar izin vermeyecek. – giodamelio

+0

woah, sadece 14 yaşındasınız. – kjy112

+0

@ kjy112 Teşekkürler Kesinlikle. Programlama harika! – giodamelio

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

echo $comma_separated; 

Eğer çöktüğünü kullanmak ve ben genellikle bu (sözde kod) gibi bir şey yapacağını

+0

$ adı ne hakkında? –

+0

sadece değerlerini okumak istediğini düşündü – kjy112

+0

neden onun sorusunu okumuyorsun? –

0

elde edebilirsiniz: Bunun gibi

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', '; 
} 

Açıklaması: tüm değerlerin toplam sayısını count() ile bulursunuz. Foreach() döngüsünü çalıştırırken, yinelemeleri sayıyorsunuz. Döngü içinde, yineleme son değilken (tüm değerlerin toplam sayımına eşit değil) 'yankılanmasını' söylersiniz.

30

Sadece foreach ile çıkış oluşturmak ve daha sonra dizi ve çıktı üretmesi sonucu implode: Ayrıca bu şekilde yapabilirdi

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

hmmm ..? – Fr0zenFyr

+0

@ Fr0zenFyr, Dizininizin performans üzerinde etkili olması için oldukça büyük olması gerekiyor. Ve eğer çok büyük bir diziniz varsa, neden eşyalarınızın virgülle ayrılmış bir dizgisine sahip olmak istersiniz? Her şey içeriğe bağlı, burada. Harika bir kodlama dünyasında, büyülü, tek bedenli bir çözüm gibi bir şey yoktur. Size, * bu * sizin için uygulanabilir bir çözüm değilse, tam olarak sorununuzu açıklayan bir soru sormaya davet ediyorum. –

+0

Bu konuya gerçekten sahip değilim, sadece bir kişi 'CSV' oluşturmak istediğinde büyük dizilerle olasılığın kontrol edildiğini söylüyor. – Fr0zenFyr

1

:

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

sadece bir büyük dize yapar Çıkabilirsiniz. Farklı stiller için farklı yöntemler, gerçekten.

İlgili konular