是否可以使用foreach循环内部的索引值,每个循环包含在partent中。请查看下面的脚本,并观察每个我使用echo'<div>' .$product['name'] . '</div>';
的孩子,当$product[' name '];
属于每个人的父母时['name ']
。那可能吗?我希望在子foreach()
中使用索引foreach($tree as $product){
echo '<div>' . $product['name']. '</div>';
foreach($product['variery'] as $variety)
{
echo'<div>'. $variery['image'] . '</div>';
echo'<div>' .$product['name'] . '</div>';
} // end of child for each
} //end of parent for each
。
{{1}}
答案 0 :(得分:2)
是的,有可能。
即使在循环之外,也会定义$product
(最后一个值保持分配)。
评论中的问题:我也可以这样做吗?
value="', $variety['price'], $variety['variety'], $product['name'],'";
上面的代码将进入子循环。
<强>答案:强> 是的,但是这种语法会导致错误。要在双引号中使用关联数组,请跳过单引号。
value="', $variety[price], $variety[variety], $product[name],'";
或使用点:
value="', " . $variety[price] . ", " . $variety[variety] . ", " . $product[name] . ",'";
答案 1 :(得分:0)
是的,如果在父循环中定义变量,那么它将在任何子循环中保留其值,因为这些子循环本身不会重新定义变量。就你的内循环而言,$ product是循环生命周期的“局部”常量,因此$ product ['name']和$ product ['variery']在外部的下一次迭代之前不会改变循环。
作为次要性能提示,您不必在echo语句中进行字符串连接。 echo将接受多个以逗号分隔的值。以下内容完全相同,没有两个连接的开销:
echo '<div>', $product['name'], '</div>'; // notice the commas
这是次要的,但如果这成为一个繁琐的代码路径,任何保存的周期都是一件好事。