2013-05-26 50 views
0

我的代碼是2個部分,主要包含重要的PHP代碼(身體),第二打印輸出(如HTML)打印所有的foreach結果

我不能讓一個在...輸出必須在第二部分

第一部分打印爲html

<?php 
    // The main code 
    $w = explode('-', 'x1-x2-x3-x4'); 
    foreach($w as $n) { 
     $s1 = $n; 
    } 
?> 

第二

<?php 
    // Print output here and must be here 
    echo $s1; 
?> 

正如你所看到的,我想了解foreach循環的輸出,它應該是

x1 
x2 
x3 
x4 

但我只得到了x4。爲什麼?

+0

你說的*部分的意思是*?文件?代碼塊? – Shoe

+0

no does not work..syntax error – user2203703

+0

他的意思是'$ s1 = $ n'。 – casraf

回答

3

你的代碼保持覆蓋的$s1值,所以最後一個是實際得到的只有一個打印。

原來你不需要說的foreach都:

// first part 
$w = explode('-', 'x1-x2-x3-x4'); 
$s1 = implode('<br>', $w); 

// second part 
echo $s1; 

您可以使用取決於什麼Content-type您發送的響應<br>\n

+1

這真是太棒了!我從來沒有想過這樣:) +1技術!這樣他就不需要循環。 – itsols

0

你重寫了foreach中的所有內容,所以你只能得到最後一個是x4的內容。

 foreach($w as $n) 
     { 
     $s1. = $n; 
     } 
     echo ($s1); 
+0

如何在下一行顯示不添加任何
標記 – sAnS

1

如果你只想打印$ S1在第二部分中沒有循環或做任何其他處理,你只需要先構建串$ S1。在你的情況下,當循環運行到最後一個項目時,只有它存儲在$ s1中。所以輸出是正確的。現在,爲了輸出整個事情爲HTML,你可以做這樣的事情在第一部分:

foreach($w as $n) 
     { 
     $s1 .= $n . "<br />"; 
     } 
1

的捷徑=)

echo str_replace('-', '<br>', 'x1-x2-x3-x4'); 
0

你可以試試這樣的:)

echo str_replace('-','<br />','x1-x2-x3-x4');