【问题标题】:PHP for loop queryPHP for 循环查询
【发布时间】:2014-10-30 10:24:35
【问题描述】:

我有以下几点:

for ($i = 0; $i < count($_POST['itemCode']); $i++) {

        $body .= '<tr>';
        $body .= '<td style="border-bottom: 1px solid #d2d2d2;"><b>' . $i . '</b></td>';
        $body .= '<td style="border-bottom: 1px solid #d2d2d2;">' . htmlspecialchars_decode($_POST['itemCode'][$i]) . '</td>';
        $body .= '<td style="border-bottom: 1px solid #d2d2d2;">' . htmlspecialchars_decode($_POST['itemDesc'][$i]) . '</td>';
        $body .= '<td style="border-bottom: 1px solid #d2d2d2; text-align:center;">' . htmlspecialchars_decode($_POST['itemQty'][$i]) . '</td>';
        $body .= '<td style="border-bottom: 1px solid #d2d2d2; text-align:right;">€' . $_POST['itemPrice'][$i] . '</td>';
        $body .= '<td style="border-bottom: 1px solid #d2d2d2; text-align:right;">€' . $_POST['itemLineTotal'][$i] . '</td>';
        $body .= '<b><td style="border-bottom: 1px solid #d2d2d2; background: #fff1f1; color:#640b0b; text-align:right;">€' . $_POST['resale'][$i] . '</b></td>';
        $body .= '<b><td style="border-bottom: 1px solid #d2d2d2; background: #fff1f1; color:#640b0b; text-align:right;">€' . $_POST['difference'][$i] . '</b></td>';
        $body .= '<b><td style="border-bottom: 1px solid #d2d2d2; background: #fff1f1; color:#640b0b; text-align:right;">-€' . $_POST['discount'][$i] . '</b></td>';
        $body .= '</tr>';
    }

我希望将计数器 ($i) 从一开始,我已将所有内容绑定,但请注意任何人都可以帮忙吗?

【问题讨论】:

  • 您是真的想跳过数组的第一个元素,还是只想显示从 1 开始的计数器?
  • @Barmar - 从 1 开始,我需要显示所有项目
  • 数组从 0 开始,所以如果你从 1 开始,你会跳过第一个元素。

标签: php loops for-loop counter


【解决方案1】:

这将完成工作:

for ($i = 0; $i < count($_POST['itemCode']); $i++) {
        $body .= '<tr>';
        $body .= '<td style="border-bottom: 1px solid #d2d2d2;"><b>' . $i+1 . '</b></td>';
        $body .= '<td style="border-bottom: 1px solid #d2d2d2;">' . htmlspecialchars_decode($_POST['itemCode'][$i]) . '</td>';
        $body .= '<td style="border-bottom: 1px solid #d2d2d2;">' . htmlspecialchars_decode($_POST['itemDesc'][$i]) . '</td>';
        $body .= '<td style="border-bottom: 1px solid #d2d2d2; text-align:center;">' . htmlspecialchars_decode($_POST['itemQty'][$i]) . '</td>';
        $body .= '<td style="border-bottom: 1px solid #d2d2d2; text-align:right;">€' . $_POST['itemPrice'][$i] . '</td>';
        $body .= '<td style="border-bottom: 1px solid #d2d2d2; text-align:right;">€' . $_POST['itemLineTotal'][$i] . '</td>';
        $body .= '<b><td style="border-bottom: 1px solid #d2d2d2; background: #fff1f1; color:#640b0b; text-align:right;">€' . $_POST['resale'][$i] . '</b></td>';
        $body .= '<b><td style="border-bottom: 1px solid #d2d2d2; background: #fff1f1; color:#640b0b; text-align:right;">€' . $_POST['difference'][$i] . '</b></td>';
        $body .= '<b><td style="border-bottom: 1px solid #d2d2d2; background: #fff1f1; color:#640b0b; text-align:right;">-€' . $_POST['discount'][$i] . '</b></td>';
        $body .= '</tr>';
    }

【讨论】:

    【解决方案2】:

    好的,感谢@Rizier123,我偶然发现了答案:

    for ($i = 1; $i <= count($_POST['itemCode']); $i++) {
    
        $body .= '<tr>';
        $body .= '<td style="border-bottom: 1px solid #d2d2d2;"><b>' . ($i) . '</b></td>';
        $body .= '<td style="border-bottom: 1px solid #d2d2d2;">' . htmlspecialchars_decode($_POST['itemCode'][($i-1)]) . '</td>';
        $body .= '<td style="border-bottom: 1px solid #d2d2d2;">' . htmlspecialchars_decode($_POST['itemDesc'][($i-1)]) . '</td>';
        $body .= '<td style="border-bottom: 1px solid #d2d2d2; text-align:center;">' . htmlspecialchars_decode($_POST['itemQty'][($i-1)]) . '</td>';
        $body .= '<td style="border-bottom: 1px solid #d2d2d2; text-align:right;">€' . $_POST['itemPrice'][($i-1)] . '</td>';
        $body .= '<td style="border-bottom: 1px solid #d2d2d2; text-align:right;">€' . $_POST['itemLineTotal'][($i-1)] . '</td>';
        $body .= '<b><td style="border-bottom: 1px solid #d2d2d2; background: #fff1f1; color:#640b0b; text-align:right;">€' . $_POST['resale'][($i-1)] . '</b></td>';
        $body .= '<b><td style="border-bottom: 1px solid #d2d2d2; background: #fff1f1; color:#640b0b; text-align:right;">€' . $_POST['difference'][($i-1)] . '</b></td>';
        $body .= '<b><td style="border-bottom: 1px solid #d2d2d2; background: #fff1f1; color:#640b0b; text-align:right;">-€' . $_POST['discount'][($i-1)] . '</b></td>';
        $body .= '</tr>';
    }
    

    注意@Rizier123 - 我去掉了“-” - 效果很好。非常感谢大家

    【讨论】:

      【解决方案3】:
      for ($i = 1; $i <= count($_POST['itemCode']); $i++) {
          $body .= '<tr>';
          $body .= '<td style="border-bottom: 1px solid #d2d2d2;"><b>' . $i . '</b></td>';
          $body .= '<td style="border-bottom: 1px solid #d2d2d2;">' .    htmlspecialchars_decode($_POST['itemCode'][$i]) . '</td>';
          $body .= '<td style="border-bottom: 1px solid #d2d2d2;">' . htmlspecialchars_decode($_POST['itemDesc'][$i]) . '</td>';
          $body .= '<td style="border-bottom: 1px solid #d2d2d2; text-align:center;">' . htmlspecialchars_decode($_POST['itemQty'][$i]) . '</td>';
          $body .= '<td style="border-bottom: 1px solid #d2d2d2; text-align:right;">€' . $_POST['itemPrice'][$i] . '</td>';
          $body .= '<td style="border-bottom: 1px solid #d2d2d2; text-align:right;">€' . $_POST['itemLineTotal'][$i] . '</td>';
          $body .= '<b><td style="border-bottom: 1px solid #d2d2d2; background: #fff1f1; color:#640b0b; text-align:right;">€' . $_POST['resale'][$i] . '</b></td>';
          $body .= '<b><td style="border-bottom: 1px solid #d2d2d2; background: #fff1f1; color:#640b0b; text-align:right;">€' . $_POST['difference'][$i] . '</b></td>';
          $body .= '<b><td style="border-bottom: 1px solid #d2d2d2; background: #fff1f1; color:#640b0b; text-align:right;">-€' . $_POST['discount'][$i] . '</b></td>';
          $body .= '</tr>';
      }
      

      【讨论】:

        【解决方案4】:

        如果你将 $i 赋值为 1,你必须像这样添加 =

        for ($i = 1; $i <= count($_POST['itemCode']); $i++) {
        
                $body .= '<tr>';
                $body .= '<td style="border-bottom: 1px solid #d2d2d2;"><b>' . $i . '</b></td>';
                $body .= '<td style="border-bottom: 1px solid #d2d2d2;">' . htmlspecialchars_decode($_POST['itemCode'][($i-1)]) . '</td>';
                $body .= '<td style="border-bottom: 1px solid #d2d2d2;">' . htmlspecialchars_decode($_POST['itemDesc'][($i-1)]) . '</td>';
                $body .= '<td style="border-bottom: 1px solid #d2d2d2; text-align:center;">' . htmlspecialchars_decode($_POST['itemQty'][($i-1)]) . '</td>';
                $body .= '<td style="border-bottom: 1px solid #d2d2d2; text-align:right;">€' . $_POST['itemPrice'][($i-1)] . '</td>';
                $body .= '<td style="border-bottom: 1px solid #d2d2d2; text-align:right;">€' . $_POST['itemLineTotal'][($i-1)] . '</td>';
                $body .= '<b><td style="border-bottom: 1px solid #d2d2d2; background: #fff1f1; color:#640b0b; text-align:right;">€' . $_POST['resale'][($i-1)] . '</b></td>';
                $body .= '<b><td style="border-bottom: 1px solid #d2d2d2; background: #fff1f1; color:#640b0b; text-align:right;">€' . $_POST['difference'][($i-1)] . '</b></td>';
                $body .= '<b><td style="border-bottom: 1px solid #d2d2d2; background: #fff1f1; color:#640b0b; text-align:right;">-€' . $_POST['discount'][($i-1)] . '</b></td>';
                $body .= '</tr>';
            }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2014-06-18
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多