PHP codeigniter中的数组到字符串转换错误

时间:2017-09-21 07:45:40

标签: php codeigniter

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

                    <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>

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

$list=explode(',',$r->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>