есть массив :
print_r($data['AdvertData']['subCategory']);
Array
(
[0] => Array
(
[seo] => dictaphones
[id_category] => 124
[title] => Диктофоны
)
[1] => Array
(
[seo] => audio
[id_category] => 122
[title] => Аудио
)
)
я создаю новый массив и наполняю его пробегаясь по верхнему и обращаясь к ячейке [id_category]
$data['subSelects'] = array();
$mainCategory = $data['AdvertData']['mainCategory'];
$i = 0;
foreach ($data['AdvertData']['subCategory'] as $k => $v) {
$i++;
$data['subSelects'][$i] = $this->app->AdvertsModel->Selects($mainCategory, $v['id_category']);
$data['subSelects'][$i]['parent'] = $data['AdvertData']['subCategory'][$k++]['id_category'];
$mainCategory = $data['AdvertData']['subCategory'][$k++]['id_category'];
}
где mainCategory
исходый самый первый id который про мере прохождения цикла меняется.
(как я понимаю) на последней итерации цикла выдается ошибка:
Notice: Undefined offset: 2 in
я не могу ее исправить, пробовал разные проверки существования или на пустоту последнего ключа массива ([$k++]
) не моиогло...
$a++ Постфиксный инкремент Возвращает значение $a, затем увеличивает $a на единицу. http://php.net/manual/ru/language.operators.increment.php
Таким образом на первой итерации ваш пример превращается:
$k = 0 //из цикла foreach
$i = 1 // поскольку в первой строке цикла делаете инкремент $i++
// здесь $k++ возвращает 0, поскольку $k++ ПОСТинкрементный оератор
$data['subSelects'][1]['parent'] = $data['AdvertData']['subCategory'][0]['id_category'];
// после первого инкремента $k++ $k превращается в 1
$mainCategory = $data['AdvertData']['subCategory'][1]['id_category'];
ошибка вылетает на втором шаге цикла, поскольку:
$k = 1 //из цикла foreach
$i = 2 // поскольку в первой строке цикла делаете инкремент $i++
// здесь $k++ возвращает 1, поскольку $k++ ПОСТинкрементный оератор
$data['subSelects'][2]['parent'] = $data['AdvertData']['subCategory'][1]['id_category'];
// после инкремента $k++ в предыдущей строке $k превращается в 2 и вызывает ошибку
// Notice: Undefined offset: 2 in
$mainCategory = $data['AdvertData']['subCategory'][2]['id_category'];
Решение: как вам советовали в первом комментарии, не использовать $i
, $i++
, $k++
, а везде вместо них подставить $k
, поскольку она итак итерируется в цикле foreach
Виртуальный выделенный сервер (VDS) становится отличным выбором
Добрый день помогите выбрать добить модуль личных количественных скидок на каждого пользователя отдельно в ограниченном виде!
Имеется таблица HTML в которую заносятся данные из БДИ такая же таблица HTML на странице администратора только редактируемая
Добрый день как можно customer(пользователя) product_id(купленный товар айди) сравнить с product_id(всего интернет магазина) и по полю в cumtomer kolichestvo делать...
Мне надо удалить объект из jsonНапример, у меня есть вот такая json-запись: { "+79123456789": { "name":"name", "date":"date", "time":"time" } Как реализовать на php удаление...