0

私のコードは 2 つの部分からなり、メインには重要な php コード (本文) が含まれ、2 つ目は出力 (html として) を出力します。

私はそれを1つにすることはできません...出力は2番目の部分で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. なんで?

4

5 に答える 5

3

コードは の値を上書きし続ける$s1ため、実際に出力されるのは最後の値だけです。

その foreach はまったく必要ないことがわかりました。

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

// second part
echo $s1;

応答で送信する内容に応じて、<br>またはを使用できます。\nContent-type

于 2013-05-26T14:25:44.413 に答える
1

最短の方法=)

echo str_replace('-', '<br>', 'x1-x2-x3-x4');
于 2013-05-26T14:46:25.723 に答える
1

ループやその他の処理を行わずに、2 番目の部分で $s1 のみを出力したい場合は、最初に文字列 $s1 を構築する必要があります。あなたの場合、ループが最後のアイテムに向かって実行されると、それだけが $s1 に格納されます。したがって、出力は正しいです。全体を html として出力するには、最初の部分で次のようにします。

  foreach($w as $n)
      {
        $s1 .= $n . "<br />";
      }
于 2013-05-26T14:24:46.103 に答える
0

foreach のすべてのコンテンツをオーバーライドしているため、最後の 1 つだけ x4 を取得しています。

      foreach($w as $n)
      {
        $s1. = $n;
      }
      echo ($s1);
于 2013-05-26T14:23:26.280 に答える