Heim  >  Artikel  >  Backend-Entwicklung  >  php 两层foreach循环如何给里层循环变量设置初始值=0

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

WBOY
WBOYOriginal
2016-06-23 13:54:071154Durchsuche

$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 做聚类处理

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn