for循环内部for循环仅运行一次

时间:2017-07-15 13:56:44

标签: php arrays loops foreach

我有一个foreach循环遍历metalname数组,它嵌套在for循环中,foreach循环来自一个单独的数组,问题是,在for循环的第一次迭代中,for each循环打印出值,但是在for循环的下一次迭代中,foreach什么都不打印。 然而,对于其他领域,没有问题,它们会打印在所有的iteratin上。

$product = GetProduct();
$metal_name = get_metal();
$count = count($product);
<?php for($i=0;$i<$count;$i++) { ?>
            <div class="form-group">

              <label class="col-sm-2 control-label col-lg-2">Choose Metal</label>

              <div class="col-lg-10">

              <select class="form-control input-lg" name="metal_name[]">
              <option value=''>Select Metal Name</option>    
                <?php
                    foreach ($metal_name as $r) { ?>
                    <option value="<?php echo $r['metal_id'];?>" <?php if($r['metal_id'] == $product[$i]['metal']){echo "selected='selected'";}?>><?php echo ucfirst($r['metal_name']);?></option>
                <?php } ?>
              </select>

              </div>

            </div>
 <div class="form-group">

            <label class="col-sm-2 col-sm-2 control-label">Product ID</label>

            <div class="col-sm-10">

                <input type="text" class="form-control" name="product_id[]" value="<?php echo $product[$i]['id'];?>">

            </div>

          </div>


          <div class="form-group">

              <label class="col-sm-2 col-sm-2 control-label">Charges Per Gram</label>

              <div class="col-sm-10">

                  <input type="text" class="form-control" name="gram_price[]" value="<?php echo $product[$i]['per_gram_price'];?>">

              </div>

          </div>
 <?php } ?>

1 个答案:

答案 0 :(得分:0)

我在你的第四行找到了一件事:

<?php for($i=0;$i<$count;$i++) { ?>

当您获得产品时,您没有在上面的代码中关闭PHP。所以这会给你一些错误。

就你的循环而言,while循环更适合数据库工作。

在这里,我为你修好了。有一些拼写错误:

<?php
$product = GetProduct();
$metal_name = get_metal();
$count = count($product);
or($i=0;$i<$count;$i++) { ?>
        <div class="form-group">

          <label class="col-sm-2 control-label col-lg-2">Choose Metal</label>

          <div class="col-lg-10">

          <select class="form-control input-lg" name="metal_name[]">
          <option value=''>Select Metal Name</option>
          <?php
                foreach ($metal_name as $r) {
          ?>
          <option value="
              <?php
                  echo $r['metal_id'];
                  if($r['metal_id'] == $product[$i]['metal']){
                      echo "selected='selected'";
                      echo ucfirst($r['metal_name']);
                  }
              ?>
           </option>
           </select>

           </div>

        </div>
        <div class="form-group">

        <label class="col-sm-2 col-sm-2 control-label">Product ID</label>

        <div class="col-sm-10">

            <input type="text" class="form-control" name="product_id[]" value="<?php echo $product[$i]['id'];?>">

        </div>

      </div>


      <div class="form-group">

          <label class="col-sm-2 col-sm-2 control-label">Charges Per Gram</label>

          <div class="col-sm-10">

              <input type="text" class="form-control" name="gram_price[]" value="<?php echo $product[$i]['per_gram_price']; ?>">

          </div>

      </div>
 

我为你修改了一些代码,试试看。