打印所有foreach结果

时间:2013-05-26 14:19:46

标签: php html

我的代码是2部分,主要包含重要的PHP代码(正文)和第二个打印输出(作为html)

我不能把它变成一个......输出必须在第二部分打印为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。为什么呢?

5 个答案:

答案 0 :(得分:3)

您的代码会覆盖$s1的值,因此最后一个是唯一实际打印的代码。

事实证明你根本不需要这样做:

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

// second part
echo $s1;

您可以使用<br>\n,具体取决于您在回复时发送的Content-type

答案 1 :(得分:1)

如果你只想在第二部分打印$ s1而不进行循环或进行任何其他处理,你只需要首先构建字符串$ s1。在你的情况下,当循环运行到最后一个项目时,只有它存储在$ s1中。所以输出是正确的。现在,为了将整个事物输出为html,您可以在第一部分中执行以下操作:

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

答案 2 :(得分:1)

最短路=)

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

答案 3 :(得分:0)

你覆盖了foreach中的所有内容,所以你只得到最后一个x4。

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

答案 4 :(得分:0)

您可以尝试这样:)

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