【问题标题】:html output formatting phphtml 输出格式化 php
【发布时间】:2012-06-27 19:48:54
【问题描述】:

我正在尝试使用 php 从我的数据库中格式化一些 html 输出,这是我的问题:

应该如何格式化:

...
<li>
    <div class="row-wrapper">
       <div class="some-class-1">ARRAY-ELEMENT-1</div>
       <div class="some-class-1">ARRAY-ELEMENT-2</div>
       <div class="some-class-1">ARRAY-ELEMENT-3</div>
       <div class="some-class-2">ARRAY-ELEMENT-4</div>
    </div>
    <div class="row-wrapper">
      <div class="some-class-1">ARRAY-ELEMENT-5</div>
      <div class="some-class-1">ARRAY-ELEMENT-6</div>
      <div class="some-class-1">ARRAY-ELEMENT-7</div>
      <div class="some-class-2">ARRAY-ELEMENT-8</div>
    </div>
    <div class="row-wrapper">
      <div class="some-class-1">ARRAY-ELEMENT-9</div>
      <div class="some-class-1">ARRAY-ELEMENT-10</div>
      <div class="some-class-1">ARRAY-ELEMENT-11</div>
      <div class="some-class-2">ARRAY-ELEMENT-12</div>
    </div>
</li>
<li>
  <div class="row-wrapper">
    <div class="some-class-1">ARRAY-ELEMENT-13</div>
    <div class="some-class-1">ARRAY-ELEMENT-14</div>
    <div class="some-class-1">ARRAY-ELEMENT-15</div>
    <div class="some-class-2">ARRAY-ELEMENT-16</div>
  </div>
  <div class="row-wrapper">
    <div class="some-class-1">ARRAY-ELEMENT-17</div>
    <div class="some-class-1">ARRAY-ELEMENT-18</div>
    <div class="some-class-1">ARRAY-ELEMENT-19</div>
    <div class="some-class-2">ARRAY-ELEMENT-20</div>
  </div>
  <div class="row-wrapper">
    <div class="some-class-1">ARRAY-ELEMENT-21</div>
    <div class="some-class-1">ARRAY-ELEMENT-22</div>
    <div class="some-class-1">ARRAY-ELEMENT-23</div>
    <div class="some-class-2">ARRAY-ELEMENT-24</div>
  </div>
</li>
... etc.

数据保存在从 mysql db 收集的数组中,到目前为止我得到了这个:

$num_thumbs = 4; //Number od elemets in a row
$result = myQueryFunction("SELECT * FROM table_name ORDER BY Id ASC"); 
$num_rows = mysql_num_rows($result); 
if (!empty($num_rows)) {
  while ($row = mysql_fetch_array($result)) {
    $thumbs_array[] = "<a href=\"" . $row[0] . "\"><img src=\"" . $row[1] . "\"";
  }
  $thumb_p = "<div>\n";
  mysql_free_result($result);
  $i = 1;
  foreach ($thumbs_array as &$thumb_link) {
    if ($i == $num_thumbs) {
        $i = 1;
        $thumb_p .= "<div class=\"some-class-2\">" . $thumb_link . "</div>";
        $thumb_p .= "</div>\n<div class=\"row-wrapper\">\n";
    } else {
            $thumb_p .= "\t\n<div class=\"some-class-1\">" . $thumb_link . "</div>";
        $i++;
    }

  }
  $thumb_p .= "\n</div>\n";
}

print($thumb_p);

这仅涵盖这部分代码格式:

  <div class="row-wrapper">
    <div class="some-class-1">ARRAY-ELEMENT-13</div>
    <div class="some-class-1">ARRAY-ELEMENT-14</div>
    <div class="some-class-1">ARRAY-ELEMENT-15</div>
    <div class="some-class-2">ARRAY-ELEMENT-16</div>
  </div>
  <div class="row-wrapper">
    <div class="some-class-1">ARRAY-ELEMENT-17</div>
    <div class="some-class-1">ARRAY-ELEMENT-18</div>
    <div class="some-class-1">ARRAY-ELEMENT-19</div>
    <div class="some-class-2">ARRAY-ELEMENT-20</div>
  </div>
  <div class="row-wrapper">
    <div class="some-class-1">ARRAY-ELEMENT-21</div>
    <div class="some-class-1">ARRAY-ELEMENT-22</div>
    <div class="some-class-1">ARRAY-ELEMENT-23</div>
    <div class="some-class-2">ARRAY-ELEMENT-24</div>
  </div>

我一直在考虑使用一些变量 $newList = null;这将在每一行更新,所以我可以检查它是否改变了下一个。 有任何想法吗?在此先感谢:)

【问题讨论】:

  • 嗯,可能是因为我在你的 PHP 中没有看到&lt;li&gt;??
  • 虽然表格不应该用于布局,但该数据看起来非常像表格数据 - 也许使用表格?并不是说这对你的问题有帮助,但我只是想把它扔在那里......
  • @JonathonReinhart 不,我不知道该放在哪里。只需要帮助如何在代码 sn-p 中包含“
  • ”,因为我不知道数组元素的确切数量。
  • @DaveRandom 嗯,不,没有桌子的 :)
  • 将数据复制到一个数组,一个使用array_chunk()以正确大小排列的块
  • 标签: php html arrays


    【解决方案1】:

    您似乎试图每三个 div 放置一个 li。在这种情况下,您可以这样做:

    $thumb_p = "<li>\n<div class=\"row-wrapper\">\n";
    mysql_free_result($result);
    $i = 1;
    $j = 0;
    foreach ($thumbs_array as &$thumb_link) {
      if ($i == $num_thumbs) {
          $i = 1;
          $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";
    

    我实际上无法尝试,但我认为没关系。每打印三个行包装器就会添加一个 li。

    【讨论】:

    • 是的,就是这样,虽然这段代码每 4 个 div 放一个 '
    • '! :)
    猜你喜欢
    相关资源
    最近更新 更多
    热门标签