【问题标题】:Array to string conversion error in PHP codeigniterPHP codeigniter中的数组到字符串转换错误
【发布时间】:2017-09-21 07:45:39
【问题描述】:

我得到数组到字符串的转换错误,而且在这里我能够从数据库中获取第一个值

                    <label for="#" class="col-sm-2 control-label">test</label>
                    <div class="col-sm-6">
                    <?php 
                    $c_box1=$c_box2=$c_box3=$c_box4=$c_box5='';
                     // $chk_box_data is which is from DB
                    foreach($selectdata as $r)
                    {
                      $list=explode(',',$r->facilities);
                      echo $list;

                      if($list=='1'){$c_box1='checked';}
                      if($list=='2'){$c_box2='checked';}
                      if($list=='3'){$c_box3='checked';}
                      if($list=='4'){$c_box4='checked';}
                      if($list=='5'){$c_box5='checked';}
                    }
                    ?>
                      <div class="col-sm-6 checkbox"><input id="checkbox5" type="checkbox" name="test[]" value="1" <?php echo $c_box1;?>><label for="checkbox5" >check</label></div>
                      <div class="col-sm-6 checkbox"><input id="checkbox1" type="checkbox" name="test[]" value="2" <?php echo $c_box2;?>><label for="checkbox1">check</label></div>
                      <div class="col-sm-6 checkbox"><input id="checkbox2" type="checkbox" name="test[]" value="3" <?php echo $c_box3;?>><label for="checkbox2">check</label></div>
                      <div class="col-sm-6 checkbox"><input id="checkbox2" type="checkbox" name="test[]" value="4" <?php echo $c_box4;?>><label for="checkbox3">check</label></div>
                      <div class="col-sm-6 checkbox"><input id="checkbox2" type="checkbox" name="test[]" value="5" <?php echo $c_box5;?>><label for="checkbox4">check</label></div>
                    </div>

【问题讨论】:

  • $list=explode(',',$r-&gt;facilities); 这一行会给你一个数组。并且您将其视为字符串if($list=='1'){$c_box1='checked';}。这就是你收到错误的原因
  • var_dump($r-&gt;facilities); 的输出是什么 - 请发布
  • 字符串(3)“1,2”

标签: php codeigniter


【解决方案1】:

explode 的返回值总是一个数组。所以在$list=explode(',',$r-&gt;facilities); 行之后,$list 将是一个数组,然后在if($list=='1'){$c_box1='checked';} 行中作为一个字符串进行比较,返回错误。

【讨论】:

    【解决方案2】:

    $list=explode(',',$r-&gt;facilities); 这一行会给你一个数组。并且您将其视为字符串if($list=='1'){$c_box1='checked';}。这就是你得到错误的原因

    你可以使用if(in_array("1", $list)){$c_box1='checked';}if(in_array("2", $list)){$c_box2='checked';}等等...

    <?php
        $c_box1=$c_box2=$c_box3=$c_box4=$c_box5='';
        $list=explode(',',"1,3,11,12,5");
        if(in_array("1", $list)){$c_box1='checked';}
        if(in_array("2", $list)){$c_box2='checked';}
        if(in_array("3", $list)){$c_box3='checked';}
        if(in_array("4", $list)){$c_box4='checked';}
        if(in_array("5", $list)){$c_box5='checked';}
    ?>
    
    
    <div class="col-sm-6 checkbox"><input id="checkbox5" type="checkbox" name="test[]" value="1" <?php echo $c_box1;?>><label for="checkbox5" >check</label></div>
    <div class="col-sm-6 checkbox"><input id="checkbox1" type="checkbox" name="test[]" value="2" <?php echo $c_box2;?>><label for="checkbox1">check</label></div>
    <div class="col-sm-6 checkbox"><input id="checkbox2" type="checkbox" name="test[]" value="3" <?php echo $c_box3;?>><label for="checkbox2">check</label></div>
    <div class="col-sm-6 checkbox"><input id="checkbox2" type="checkbox" name="test[]" value="4" <?php echo $c_box4;?>><label for="checkbox3">check</label></div>
    <div class="col-sm-6 checkbox"><input id="checkbox2" type="checkbox" name="test[]" value="5" <?php echo $c_box5;?>><label for="checkbox4">check</label></div>
    

    【讨论】:

    • if(in_array("1", $list)){$c_box1='checked';} if(in_array("2", $list)){$c_box1='checked';} if(in_array("3", $list)){$c_box1='checked';} if(in_array("4", $list)){$c_box1='checked';} if(in_array("5", $list)){$c_box1='checked';}
    • explode语法有什么问题吗。
    • 您是否在$r-&gt;facilities 中获取值?
    • 当我打印该值时,它只显示“数组”
    • 那会得到什么输出?
    猜你喜欢
    • 1970-01-01
    • 2012-12-02
    • 2023-03-11
    • 1970-01-01
    • 1970-01-01
    • 2021-02-23
    • 2015-12-18
    • 1970-01-01
    相关资源
    最近更新 更多