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

WBOY
Release: 2016-06-13 13:04:59
Original
720 people have browsed it

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

<?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 />
}?>
Copy after login


程序初始状态为上。
注意$_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 />
Copy after login

可直接执行。
------其他解决方案--------------------
<?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 />
}?>
Copy after login

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

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!