Home >Backend Development >PHP Tutorial >php 两层foreach循环如何给里层循环变量设置初始值=0
$question): ?>
$answer): ?>
如何在里层循环完之后 第二次里层循环时让$i的值从0开始,而不是接着上次循环的值继续
不明白你的意思,举例说明。或者说明一下你想怎样输出。
不明白你的意思,举例说明。或者说明一下你想怎样输出。
<?php foreach($questions as $k=>$question): ?> <dl> <dt class="knowledge_problem"><i><?php echo $k+1 ;?>.</i><span><?php echo $question['a']['question']; ?></span></dt> <dd> <input type="hidden" id="<?php echo 'num'.($k+1) ;?>" name="<?php echo 'num'.($k+1) ;?>" value="<?php echo $question['a']['ID']; ?>"/> <div class="answer clearfix"> <ul> <?php foreach($answers as $i=>$answer): ?> <?php if($question['a']['ID'] == $answer['b']['idw_questions']): ?> <li class="<?php echo 'num0'.($i+1) ?>"> <input type="radio" name="<?php echo $k+1 ?>" id="<?php echo $answers[$i]['b']['ID']; ?>" value="<?php echo $answers[$i]['b']['ID']; ?>"> <label for="<?php echo $answer['b']['ID']; ?>"><?php echo $answer['b']['answer']; ?></label> </li> <?php endif ;?> <?php endforeach; ?> </ul> </div> </dd> </dl> <?php endforeach; ?>
不明白你的意思,举例说明。或者说明一下你想怎样输出。
<?phpecho '<meta http-equiv="content-type" content="text/html;charset=utf-8">';$questions = array( '问题1', '问题2', '问题3');$answers = array( array('选项a','选项b'), array('选项c','选项d'), array('选项e','选项f'));foreach($questions as $k=>$question){ echo 'Q'.($k+1).'<br>'; foreach($answers[$k] as $i=>$answer){ echo 'option'.($i+1).' '.$answer.'<br>'; } echo '<br>';}?>
#3 代码
第8行改为
第14行改为
内层每次都要遍历 $answers 数组,而只取少量数据
有点得不偿失,建议调整一下数据组织方式(参考#4)
当然也可以在主循环开始前先对 $answers 做聚类处理