2013-10-19 133 views
0

我正在處理這個程序,在這裏我試圖分開字符串電子郵件,由',',然後我存儲在數組中,然後在'foreach'中追加'city' ..爆炸到PHP陣列

$email='aa,bb,cc,dd'; 
$a=explode(',',$email); 
//echo $a[2]; 
$result=""; 
foreach($a as $v) 
{ 
    $result .= " city = '$v' "; 
    echo $result; 
} 

我得到的結果作爲

city = 'aa' city = 'aa' city = 'bb' city = 'aa' city = 'bb' city = 'cc' city = 'aa' city = 'bb' city = 'cc' city = 'dd' 

,但我希望它是,,

city = 'aa' city = 'bb' city = 'cc' city = 'dd' 

是我的代碼錯了嗎?..請指導我..

+0

不要在迴路中放置'echo'。這就是爲什麼它輸出逐漸增長的列表。 – mario

+0

好像其他的中隊剛剛飛過。 –

回答

2

echo移出循環,因爲您正在循環中構建整個字符串,每次都會回顯字符串。

$result=""; 
foreach($a as $v) 
{ 
    $result .= " city = '$v' "; 

} 

    echo $result; // move it here 
+0

是啊我明白了,謝謝你.. –

+1

也許我也應該提出相同的答案。 (開玩笑) –

+0

@ user2810964你知道該怎麼做。 –

0

你所得到的結果,按您的代碼,你echo結果在每個loop執行。

所以爲了得到$ result中的最終值,echo它在loop之外。

foreach($a as $v) 
{ 
    $result .= " city = '$v' "; 
} 
echo $result; 
+0

[6分鐘太晚](http://stackoverflow.com/a/19462175/1415724) –

0

的結果

$email='aa,bb,cc,dd'; 
$a=explode(',',$email); 
//echo $a[2]; 
$result=""; 
foreach($a as $v) 
{ 
    $result = " city = '$v' ";//changed $result .= " city = '$v' "; to $result = " city = '$v' "; 
    echo $result; 
} 
0

刪除字符串連接您的迴音$ rresult中的foreach所以你的字符串或變量是重複的。請嘗試以下代碼:

$email='aa,bb,cc,dd'; 
$a=explode(',',$email); 

$result=""; 
foreach($a as $v) 
{ 
    $result .= " city = '$v' ";  
} 
echo $result; 
0

刪除字符串concate ..

$email='aa,bb,cc,dd'; 
$a=explode(',',$email); 
//echo $a[2]; 
$result=""; 
foreach($a as $v) 
{ 
    $result = " city = '$v' "; // remove string concate.. 
    echo $result; 
} 


另一種方法是foreach循環外回聲......

$email='aa,bb,cc,dd'; 
$a=explode(',',$email); 
//echo $a[2]; 
$result=""; 
foreach($a as $v) 
{ 
    $result .= " city = '$v' "; 
} 

echo $result; // echo outside the foreach loop 


輸出

city = 'aa' city = 'bb' city = 'cc' city = 'dd'