【问题标题】:Foreach loop inside for loop runs only oncefor循环内的foreach循环只运行一次
【发布时间】:2017-07-15 13:56:44
【问题描述】:

我有一个 foreach 循环遍历 metalname 数组,该数组嵌套在一个 for 循环中,foreach 循环来自一个单独的数组,问题是,在 for 循环的第一次迭代期间,for each 循环打印值,但在 for 循环的下一次迭代中,foreach 什么也不打印。 而对于其余字段,没有问题,它们会打印在所有迭代中。

$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 } ?>

【问题讨论】:

    标签: php arrays loops foreach


    【解决方案1】:

    我在你的第四行发现了一件事:

    <?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>
    

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

    【讨论】:

      猜你喜欢
      • 2013-11-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-09
      • 2021-06-15
      • 2014-12-07
      • 2023-03-24
      相关资源
      最近更新 更多