Rumah > pembangunan bahagian belakang > tutorial php > 程序逻辑有有关问题,请帮忙

程序逻辑有有关问题,请帮忙

WBOY
Lepaskan: 2016-06-13 10:59:32
asal
792 orang telah melayarinya

程序逻辑有问题,请大虾帮忙

<?php<br />$arr = array(<br />	0 => array('id'=>12,'name'=>'NO.1'),<br />	1 => array('id'=>13,'name'=>'NO.2'),<br />);<br /><br />$_check_id = 0;<br />if($arr) {<br />foreach($arr as $v){<br />?><br /><input type="radio" name="c" id="d_<?php echo $v['id']?>" value="<?php echo $v[id]?>" /><?php echo $v['name']?><br><br /><?php <br />}<br />}?>
Salin selepas log masuk


程序初始状态为上。
注意$_check_id是三种状态,第一种是为0,即$_check_id=0,第二种是有值,但与数组中的id不相等,即$_check_id=2,第三种状态是:$_check_id与数组中的id相等

现在要求在循环的时候$_check_id 与 数组中id对比
如果相等,将input中的radio选中,即状态为checked
如果不相等,则将循环出来的第一个radio选为checked

当然,也可以拿出循环体来实现,只要能将上面的问题解决就好,想了两三个小时了,麻烦大家给个思路吧

当然,数组也有可能为空,这个就不用判断了,很好解决,现在麻烦的是怎么将上面的问题解决,想了半天,没有头绪,头大了。
------最佳解决方案--------------------
<br /><br />	$arr = array(<br />    0 => array('id'=>12,'name'=>'NO.1'),<br />    1 => array('id'=>13,'name'=>'NO.2'),<br />    2 => array('id'=>14,'name'=>'NO.3'),<br />    3 => array('id'=>15,'name'=>'NO.4'),<br />	);<br />	<br />	$_check_id = 14;<br />	$found = false;<br />	$htmls = array();<br />	if($arr) {<br />		foreach($arr as $v){<br />			$input_pre = <<<EOT<br />				<input type="radio" name="c" id="d_{$v['id']}" value="{$v['id']}"<br />EOT;<br />			$input_post = <<<EOT<br />				/>{$v['name']}<br />EOT;<br />			if(!$found && $_check_id == $v['id']) {<br />				$found = true;<br />				$input_pre .= ' checked ';<br />			}<br />			$htmls[] = array($input_pre, $input_post);<br />		}<br />	}<br />	$htmlstr = '';<br />	foreach($htmls as $html) {<br />		if(!$found) {<br />			$html[0] .= ' checked ';<br />			$found = true;<br />		}<br />		$htmlstr .= implode('', $html);<br />	}<br />	echo $htmlstr;<br />
Salin selepas log masuk

可直接执行。
------其他解决方案--------------------
<?php<br />$arr = array(<br />    0 => array('id'=>12,'name'=>'NO.1'),<br />    1 => array('id'=>13,'name'=>'NO.2'),<br />    2 => array('id'=>14,'name'=>'NO.3'),<br />);<br /> <br />$_check_id = 0;<br />if($arr) {<br />  foreach($arr as &$v) {<br />    if($_check_id == $v['id']) {<br />      $v['check'] = ' checked';<br />      $_check_id = -1;<br />    }<br />  }<br />  if($_check_id >=0) $arr[0]['check'] = ' checked';<br />  foreach($arr as $v){<br />?><br /><input type="radio" name="c" id="d_<?php echo $v['id']?>" value="<?php echo $v['id']?>" <?php ;echo isset($v['check'])?$v['check']:''?> /><?php echo $v['name']?><br /><?php <br />}<br />}?>
Salin selepas log masuk

------其他解决方案--------------------
<br />foreach($arr as $key=>$v){<br />	if($key == $_check_id){<br />	//这儿是checked<br />	continue;<br />	}<br />......<br />
Salin selepas log masuk

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan