foreach循环里面for循环只运行一次
问题描述:
我有一个foreach循环遍历在for循环中嵌套的metalname数组,foreach循环来自一个单独的数组,问题是在for循环的第一次迭代期间,为每个循环打印值,但在for循环的下一次迭代中,foreach不打印任何内容。 而对于其余的字段,没有问题,它们会打印在所有迭代中。foreach循环里面for循环只运行一次
$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>
我搞掂你的代码了一下你,尝试了这一点。