我正在创建一个包含很多内容的处方集,而且我的foreach是一个简单的问题。
这是我的代码:
foreach($aDonnes['Grilles'][$iGrilleId] as $iCptGrille){
$sHtml .='<tr><td class="grille">'.($sGrilleLib=$aDonnes['Grilles'][$iCptGrille][1]).'</tr></td>';
$aDonnes['Domaines']=$oRolling->find_domaines($iCptGrille);
if ($iCptGrille < $aDonnes['Grilles'].length) {
$iCptGrille++;
}
// Several nested foreach
我尝试过没有if条件或其他任何东西,当我查看日志时它仍然没有增加,它只是反复做同样的事情。
如果您有任何问题,请随时提出。
注意:$ iCptGrille是我的int,它不会增加,而且aDonnes是一个包含大量数据的数组,在我们的例子中,这是我的表的每个ID,称为&#34; Grille&# 34;我想循环。
答案 0 :(得分:0)
如果您正在检查2D数组,我认为foreach输入应为:
foreach($aDonnes['Grilles'] as $iCptGrille){...}
此外,计数器名称与对象项目$ iCptGrille具有相同的名称,这是没有意义的。
此外,您可以尝试在foreach阻止之前将计数器初始化为0,如果不需要,则删除“if”语句。
对于更深入的调查,您可以在foreach块内使用某种标记(例如echo 'entered';
),以确保它进入foreach块。
我希望它有所帮助。
答案 1 :(得分:0)
正如Answers_Seeker所说,“这是范围问题:使用as关键字会复制实际的数组元素。”