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

WBOY
풀어 주다: 2016-06-13 13:04:59
원래의
721명이 탐색했습니다.

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

<?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 />
}?>
로그인 후 복사


程序初始状态为上。
注意$_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 />
로그인 후 복사

可直接执行。
------其他解决方案--------------------
<?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 />
}?>
로그인 후 복사

------其他解决方案--------------------
<br />
foreach($arr as $key=>$v){<br />
	if($key == $_check_id){<br />
	//这儿是checked<br />
	continue;<br />
	}<br />
......<br />
로그인 후 복사

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!