• 技术文章 >后端开发 >php教程

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

    2016-06-13 13:04:59原创295
    程序逻辑有问题,请大虾帮忙
    
    $arr = array(
    0 => array('id'=>12,'name'=>'NO.1'),
    1 => array('id'=>13,'name'=>'NO.2'),
    );

    $_check_id = 0;
    if($arr) {
    foreach($arr as $v){
    ?>


    }
    }?>


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

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

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

    当然,数组也有可能为空,这个就不用判断了,很好解决,现在麻烦的是怎么将上面的问题解决,想了半天,没有头绪,头大了。
    ------最佳解决方案--------------------


    $arr = array(
    0 => array('id'=>12,'name'=>'NO.1'),
    1 => array('id'=>13,'name'=>'NO.2'),
    2 => array('id'=>14,'name'=>'NO.3'),
    3 => array('id'=>15,'name'=>'NO.4'),
    );

    $_check_id = 14;
    $found = false;
    $htmls = array();
    if($arr) {
    foreach($arr as $v){
    $input_pre = << EOT;
    $input_post = << />{$v['name']}
    EOT;
    if(!$found && $_check_id == $v['id']) {
    $found = true;
    $input_pre .= ' checked ';
    }
    $htmls[] = array($input_pre, $input_post);
    }
    }
    $htmlstr = '';
    foreach($htmls as $html) {
    if(!$found) {
    $html[0] .= ' checked ';
    $found = true;
    }
    $htmlstr .= implode('', $html);
    }
    echo $htmlstr;

    可直接执行。
    ------其他解决方案--------------------
    
    $arr = array(
    0 => array('id'=>12,'name'=>'NO.1'),
    1 => array('id'=>13,'name'=>'NO.2'),
    2 => array('id'=>14,'name'=>'NO.3'),
    );

    $_check_id = 0;
    if($arr) {
    foreach($arr as &$v) {
    if($_check_id == $v['id']) {
    $v['check'] = ' checked';
    $_check_id = -1;
    }
    }
    if($_check_id >=0) $arr[0]['check'] = ' checked';
    foreach($arr as $v){
    ?>
    />
    }
    }?>

    ------其他解决方案--------------------

    foreach($arr as $key=>$v){
    if($key == $_check_id){
    //这儿是checked
    continue;
    }
    ......
    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:nbsp gt check id array
    上一篇: 如何避免金额的格式,前端和PHP 下一篇: 小弟我用ThinkPHP时的session有关问题
    PHP编程就业班

    相关文章推荐

    • CSS英文单词汇总(PHP新手收藏)• PHP英文单词汇总(PHP新手收藏)• MySQL英文单词汇总(PHP新手收藏)• HTML英文单词汇总(PHP新手收藏)• 我28了,还能不能学PHP?

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网