我想在数据库表的行中插入以下复选框,但有错误,如何解决? (我不能在名称复选框中更改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"
}
}
答案 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是未定义的。