[英]Foreach loop inside for loop runs only once
我有一个遍历metalname数组的foreach循环,它嵌套在一个for循环内,foreach循环来自一个单独的数组,问题是,在for循环的第一次迭代期间,for每个循环都会打印值,但是在在for循环的下一次迭代中,foreach不输出任何内容。 而对于其余字段,没有问题,它们会印在所有Iteratins上。
$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 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>
我为您修复了一些代码,请尝试一下。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.