错误未定义的偏移量

时间:2011-10-11 20:12:23

标签: php arrays codeigniter

我想在数据库表的行中插入以下复选框,但有错误,如何解决? (我不能在名称复选框中更改5)

<input type="checkbox" name="checkbox_units_a[5][]" value="tv">
<input type="checkbox" name="checkbox_units_a[5][]" value="radio">

$name_un = $this -> input -> post('name_units_a');
$service_un = $this -> input -> post('checkbox_units_a');
$data3 = array();
foreach($name_un as $idx => $name) {
    $data3[] = array(
    'name_un' => $name_un[$idx],
    'service_un' => json_encode($service_un[$idx]), ); //This is line 210
};
$this -> db -> insert_batch('hotel_units', $data3);

错误:

  

遇到PHP错误
严重性:通知
消息:   未定义的偏移量:0
文件名:residence.php
行号:   210个

var_dump $name_un中我的输出:

array(1) {
    [0] = > string(6)"accessories"
}

var_dump $service_un中我的输出:

array(1) {
    [5] = > array(2) {
        [0] = > string(15)"tv" [1] = > string(12)"radio"
    }
}

2 个答案:

答案 0 :(得分:1)

错误表示您的偏移量等于0,可能是您的$idx == 0$service_un[$idx] == null;)

修改

我认为$idx == 0导致json_encode中的未定义偏移量0尝试重新索引$service_un数组(如果无法更改HTML中的5)以使其启动使用0示例:

$service_un = array_values ( $service_un ); // reindexing array

它看起来像:

array(1) {
  [0] => array(2) {
    [0] => string(2) "tv"
    [1] => string(5) "radio"
  }
}

答案 1 :(得分:0)

$service_un只有一个偏移量,它是五(5),所以这里0是未定义的。