【问题标题】:PHP Code correctionPHP代码更正
【发布时间】:2012-06-28 00:25:56
【问题描述】:

我有这个代码 sn-p:

$num_thumbs = 3;
$thumb_p = "<li>\n<div class=\"row-wrapper\">\n";
$i = 0;
$j = 0;
foreach ($thumbs_array as &$thumb_link) {
if ($i == $num_thumbs) {
  $i = 0;
  $thumb_p .= "<div class=\"some-class-2\">" . $thumb_link . "</div>";
  $thumb_p .= "</div>\n";
  if($j == 3)
  {
      $thumb_p .= "</li>\n<li>";
      $j = 0;
  }
  $thumb_p .= "<div class=\"row-wrapper\">\n";
  $j++;
} else {
  $thumb_p .= "\t\n<div class=\"some-class-1\">" . $thumb_link . "</div>";
  $i++;
}
}
$thumb_p .= "\n</div>\n</li>\n";

它应该在每 3 次出现后将 &lt;div class=\"row-wrapper\"&gt; 包裹在 &lt;li&gt;&lt;/li&gt; 之间。

问题是我每次都在底部多出一行:

<li>
<div class="row-wrapper">
</div>
</li>

【问题讨论】:

  • $thumb_p .= "\n
    \n\n";如果您删除最后一个 \n ?
  • 这不是代码更正,而是逻辑更正。因为错误的逻辑会产生不需要的行为而不是错误。
  • 尝试使用 PHP 替代语法 &lt;?php foreach($items AS $item): ?&gt; &lt;li&gt;&lt;/li&gt; &lt;?php endforeach; ?&gt; 它使您的代码更清晰,更易于理解。
  • 还要记住,Stack Overflow 不是调试平台或协作编程平台。如果您知道如何使用您编写的代码,请向后追溯您的步骤,将您的条件写在一张纸上并尝试重新编写,不要让其他人为您做您的工作。
  • 这个..Problem is that i get one extra line at the bottom every time:是什么意思?
  • 标签: php html arrays foreach formatting


    【解决方案1】:

    考虑这条线

    $thumb_p .= "</li>\n<li>";
    

    这不会给你带来麻烦吗?我觉得应该是

     $thumb_p .= "<li>\n</li>";
    

    【讨论】:

    • 我不这么认为。 OP 的版本更有意义。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-01
    • 1970-01-01
    • 2021-03-31
    • 2016-09-20
    • 1970-01-01
    • 2011-08-16
    相关资源
    最近更新 更多