[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: ошибка Illegal offset type in
dvs
жалуется на эту строчку $structure[$value] = $model->get_tree($value);

не понятно почему?



Спустя 1 минута, 15 секунд (23.01.2012 - 21:35) Winston написал(а):
Где код?

Спустя 1 минута, 31 секунда (23.01.2012 - 21:36) dvs написал(а):
			while($parent_id){
unset($for_new_par_id);
foreach($parent_id as $value){
$arr = array($value);
$structura[$value] = $model->get_tree($arr);
if($structura[$value]){
$for_new_par_id[] = $structura[$value];
}
}

unset($parent_id);
if($for_new_par_id){
$parent_id = $for_new_par_id;
}
}

Спустя 3 минуты, 33 секунды (23.01.2012 - 21:40) Игорь_Vasinsky написал(а):
у тя по тексту ошибки обращение к элементу массива, индексного - индекса которого не существует.

какая строчка хоть?

Спустя 44 секунды (23.01.2012 - 21:40) redreem написал(а):
чему вообще $value до while равно?

print_r($value);

Спустя 23 секунды (23.01.2012 - 21:41) Winston написал(а):
Цитата (dvs @ 23.01.2012 - 20:36)
$model->get_tree($arr);

А зачем ты передаешь массив в метод get_tree? Или это так задумано?

Спустя 1 минута, 59 секунд (23.01.2012 - 21:43) Игорь_Vasinsky написал(а):
get_tree() - если перевести - логичное - созвучное название метода, для построения древа из массива.

Спустя 42 секунды (23.01.2012 - 21:43) Игорь_Vasinsky написал(а):
$arr = array($value);

а для чё вообще массив с одним элементом?

Спустя 3 секунды (23.01.2012 - 21:44) Winston написал(а):
Цитата (dvs @ 23.01.2012 - 20:36)
$structura[$value] =

Цитата
Массивы и объекты не могут быть использованы в качестве ключей. Это вызовет предупреждение: Illegal offset type ('Недопустимый тип смещения').

Что у тебя хранится в $value?

Спустя 1 минута, 9 секунд (23.01.2012 - 21:45) Игорь_Vasinsky написал(а):
А тут?

if($for_new_par_id){
$parent_id = $for_new_par_id;
}


если условие выполняется - ты постоянно перезаписываешь $parent_id

Спустя 57 секунд (23.01.2012 - 21:46) Игорь_Vasinsky написал(а):
Winston
вот же
foreach($parent_id as $value)

если простой массив - то элементы массива, если многомерный - то массивы

может ТС надо
foreach($parent_id as $key=>$value)
???

смотря что за гусь $parent_id ;)

Спустя 3 минуты, 36 секунд (23.01.2012 - 21:49) dvs написал(а):
до while
$parent_id = Array
(
[0] => m64
)


строчка на которую ругается $structura[$value] = $model->get_tree($arr);
Функция get_tree для обработки массива(поэтому нужно отправить значение как массив)

перезаписываю $parent_id для получения других ветвей дерева

Спустя 1 минута, 26 секунд (23.01.2012 - 21:51) Winston написал(а):
Цитата (dvs @ 23.01.2012 - 20:49)
строчка на которую ругается $structura[$value] = $model->get_tree($arr);

Массивы и объекты не могут быть использованы в качестве ключей. Это вызовет предупреждение: Illegal offset type ('Недопустимый тип смещения').

Спустя 2 минуты, 55 секунд (23.01.2012 - 21:54) dvs написал(а):
а разве я использую в качестве ключа массив?

Спустя 1 минута, 48 секунд (23.01.2012 - 21:55) Winston написал(а):
А если до
$structura[$value] = $model->get_tree($arr);
Написать
echo $value
Что будет выведено?

Спустя 3 минуты, 12 секунд (23.01.2012 - 21:59) dvs написал(а):
m64

Спустя 7 минут, 57 секунд (23.01.2012 - 22:07) Игорь_Vasinsky написал(а):
может так формировать

 $structure[$value][] = $model->get_tree($value);

Спустя 1 минута (23.01.2012 - 22:08) Winston написал(а):
Игорь_Vasinsky
Мне кажется, что здесь что-то со значением которое он подставляет в качестве индекса...

Спустя 2 минуты, 3 секунды (23.01.2012 - 22:10) dvs написал(а):
сам код отрабатывает правильно, это даже не ошибки, а предупреждения, но вот почему? Warning: Illegal offset type in

Спустя 2 минуты, 41 секунда (23.01.2012 - 22:12) Winston написал(а):
ну блин, напиши просто
$structure['a'] = $model->get_tree($value);
Нотисы/ошибки есть ?



Спустя 3 минуты, 10 секунд Winston написал(а):
Или вообще так
$structure[] = $model->get_tree($value);
Нотисы/ошибки есть ?

Спустя 8 минут, 32 секунды (23.01.2012 - 22:21) dvs написал(а):
всем спасибо, ошибка найдена, первый раз
$parent_id = Array
(
[0] => m64
)

здесь все нормально
второй раз

parent_id = Array
(
[0] => Array
(
[0] => 85
[1] => 86
[2] => 88
)

)



Спустя 56 секунд (23.01.2012 - 22:22) Игорь_Vasinsky написал(а):
тьфу ты... говорят же - массив влезает.. проверяй на is_array()

Спустя 1 минута, 26 секунд (23.01.2012 - 22:23) Winston написал(а):
Отож!
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.