首页  >  文章  >  后端开发  >  php 两层foreach循环如何给里层循环变量设置初始值=0

php 两层foreach循环如何给里层循环变量设置初始值=0

WBOY
WBOY原创
2016-06-23 13:54:071154浏览

$question): ?>
                               $answer): ?>
                              



如何在里层循环完之后  第二次里层循环时让$i的值从0开始,而不是接着上次循环的值继续


回复讨论(解决方案)

不明白你的意思,举例说明。或者说明一下你想怎样输出。

不明白你的意思,举例说明。或者说明一下你想怎样输出。


需求是这样的     一个问题下面好几个选项      问题跟选项是一对多的关系  我写了两个foreach循环 数据能读出来,
比如 问题1   下面选项是   1.选项a  2.选项b   问题2  下面选项是1.选项c   2.选项d      这里选项的题号 我想用$i来做,但是两个foreach之后    问题2的选项的题号是从3开始的

<?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; ?>


不明白你的意思,举例说明。或者说明一下你想怎样输出。


需求是这样的     一个问题下面好几个选项      问题跟选项是一对多的关系  我写了两个foreach循环 数据能读出来,
比如 问题1   下面选项是   1.选项a  2.选项b   问题2  下面选项是1.选项c   2.选项d      这里选项的题号 我想用$i来做,但是两个foreach之后    问题2的选项的题号是从3开始的

<?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>';}?>


Q1
option1 选项a
option2 选项b

Q2
option1 选项c
option2 选项d

Q3
option1 选项e
option2 选项f

#3 代码
第8行改为 
第14行改为 

内层每次都要遍历 $answers 数组,而只取少量数据
有点得不偿失,建议调整一下数据组织方式(参考#4)

当然也可以在主循环开始前先对 $answers 做聚类处理

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn