<?php
foreach($products as $product){
//some code here , echoing products and everything works there
foreach($types as $type){
echo $type['type'];
// only does the echo on the first occurence of this "types" loop
}
}
?>
大家好,
我正在制作一种表格,以便人们可以为数据库的每个产品指定产品的类型。
$ products和$ types都是不同的数组。产品包含我的所有产品,$ types包含我的所有类型。
实际上我只有2种产品和2种类型。
所以,我的问题是:为什么回声没有显示foreach($products as $product)
的第二次出现的任何内容,并在第一次出现时显示出良好的结果?
这是完全相同的数组,称为2次,但仅在循环的第一次出现时起作用。对我来说非常奇怪。
希望你能理解尽管英语不好。 再见
答案 0 :(得分:1)
假设有4种产品和7种类型。使用以下代码,您将执行外循环4次,内循环执行7次。打印的内容是所有7个项目的$ type [&#39; type&#39;]的内容。这4次。
<?php
foreach($products as $product){
foreach($types as $type){
echo $type['type'];
}
}
?>
您需要的是包含产品类型的$ products数组,以便您可以使用以下代码
<?php
foreach($products as $product){
foreach($product->type as $type){
echo $type['type'];
}
}
?>
答案 1 :(得分:0)
这是因为在第二个循环中,$ type仍然是对最后一个数组项的引用,因此每次都会被覆盖。
你可以这样看:
$types = array ('type-one','type-two','type-three');
foreach ($types as $type) {
echo $type;
}
foreach ($types as $type) {
echo $type;
}
如您所见,第二次调用数组。它不会回应任何东西。
没有&#34; bug&#34;在你的代码中。它就像那样发生
要解决它。您可以在第二个循环之前使用此代码。它将重置数组引用。
reset($types);