#php #arrays #codeigniter
#php #массивы #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"
}
}
Комментарии:
1. Вы пытались распечатать массив $service_un:
print_r($service_un);
?2. Вам нужно улучшить свой письменный английский , очень сложно понять ваши вопросы.
3. Пожалуйста, посмотрите Мое обновление (вывод vardump) в сообщении.
Ответ №1:
Ошибка говорит, что ваше смещение 0
, вероятно, равно вашему $idx == 0
и $service_un[$idx] == null
😉
Редактировать
Как я и думал $idx == 0
, вызывает неопределенное смещение 0 при json_encode
попытке переиндексировать ваш $service_un
массив (если вы не можете изменить 5
в HTML), чтобы он начинался с 0
примера:
$service_un = array_values ( $service_un ); // reindexing array
это будет выглядеть так:
array(1) {
[0] => array(2) {
[0] => string(2) "tv"
[1] => string(5) "radio"
}
}
Комментарии:
1. Хорошо, и, пожалуйста, выведите
var_dump($name_un)
2. Пожалуйста, смотрите Мой пост для
var_dump($name_un)
Ответ №2:
$service_un
есть только одно смещение, и оно равно пяти (5), поэтому 0 здесь не определено.