【问题标题】:PHP Array output shows only in horizontal [duplicate]PHP数组输出仅以水平显示[重复]
【发布时间】:2021-02-07 13:18:58
【问题描述】:

我是 PHP 新手,我尝试垂直打印数组值,但它水平显示值。这是我尝试过的代码。请帮帮我,伙计们。

$roomCount = count($_POST["room_nos"]);
    for($i=0;$i<$roomCount;$i++) {
        foreach($roomsCount as $value){
        
}
        $output.= $roomsCount[$i];
}

echo $output;

当前输出为 120122。

但我想要它

120
122

真的在等你的帮助。

【问题讨论】:

  • 你可以使用 \n 来换行。 $output.= $roomsCount[$i] . " \n";
  • @NícolasSimsBotelho 为您提供正确的解决方案,尽管使用 $output.= $roomsCount[$i] . PHP_EOL; 可能会更好,或者,如果您希望在浏览器中输出此内容,您可能需要 $output.= $roomsCount[$i] . '&lt;br&gt;';使用可能取决于上下文,但重点是您需要告诉程序在新行上输出每个值。
  • 我同意@WesleySmith,谢谢。
  • 感谢您的帮助。我想在浏览器上显示它。这行得通。 $output.= $roomsCount[$i] 。 '
    ';

标签: php arrays for-loop foreach


【解决方案1】:

你也可以附加&lt;pre&gt;&lt;/pre&gt;html标签在php中横向打印。

 $output .=  '<pre>' . $output .'</pre>';

【讨论】:

    【解决方案2】:

    您可以使用 \n 换行。 $output.= $roomsCount[$i] 。 "\n";或者正如@WesleySmith 所说: it might be better to use $output.= $roomsCount[$i] . PHP_EOL;, or, if you're looking to output this in a browser, you might want $output.= $roomsCount[$i] . '&lt;br&gt;';

    【讨论】:

      【解决方案3】:

      您需要在代码中添加换行符。 有一些我知道的方法,你必须在需要的地方使用它们,例如使用&lt;br&gt; 对 html 来说是可以的,但如果你不在 html 代码中使用 php,则可能无法工作。

      要在 html 中使用,试试这个编辑过的代码:

      $roomCount = count($_POST["room_nos"]);
          for($i=0;$i<$roomCount;$i++) {
              foreach($roomsCount as $value){
              
      }
              $output.= $roomsCount[$i]."<br>";
              // edited over here // ."<br>" added to your code
      }
      
      echo $output;
      

      对于在 JavaScript 或 jQuery 字符串返回或 console.log 或其他内容中使用,您也可以使用此代码:

      $roomCount = count($_POST["room_nos"]);
          for($i=0;$i<$roomCount;$i++) {
              foreach($roomsCount as $value){
      
      }
              $output.= $roomsCount[$i]."\n";
              // edited over here // ."\n" added to your code
      }
      
      echo $output;
      

      此外,如果您尝试将其保存在数据库中或在任何 API 上使用,您可能需要使用此代码 PHP_EOL,如下所示:

      $roomCount = count($_POST["room_nos"]);
          for($i=0;$i<$roomCount;$i++) {
              foreach($roomsCount as $value){
      
      }
              $output.= $roomsCount[$i].PHP_EOL;
              // edited over here // .PHP_EOL added to your code
      }
      
      echo $output;
      

      我不确定你可以使用它的所有东西,但我知道它的所有代码我希望它能解决你的问题。

      【讨论】:

      • 还有一个选项,不管它的价值如何,返回只包含数字数组的 JSON 字符串,然后让前端决定如何显示它。
      • 太棒了。非常感谢您提供的所有解决方案。
      【解决方案4】:

      插入换行符:

          $output.= sprintf ("%d<br>",$roomsCount[$i]); 
      

      【讨论】:

      • 只有在输出到 html 的情况下。例如,如果将其输出到 textarea 标记中,则会失败。
      • 另外,在这里使用sprintf 似乎有点矫枉过正,因为连接会更简单
      • 是的。将文本区域的“
        ”替换为“\n”
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-05-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多