2013-10-19 137 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'