Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Многомерный массив

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
BlackHacker
Отправлено: 04 Сентября, 2012 - 18:39:53
Post Id


Новичок


Покинул форум
Сообщений всего: 38
Дата рег-ции: Май 2010  


Помог: 0 раз(а)




Всем привет. Столкнулся с такой ошибкой:
Цитата:
Notice: Undefined index: u

Индекс u в массиве присутствует, выводится через echo, и даже все работает. Я бы может и не заморачивался из-за этого, но результат работы скрипта выводится в ajax, и некрасиво, что там вываливаются ошибки. Массив проходит через несколько функций, может, причина в этом. Если кто-нибудь знает, отпишитесь.
 
 Top
Мелкий Супермодератор
Отправлено: 04 Сентября, 2012 - 18:48:42
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Дальше по тексту ошибки написано даже, в какой строке проблема. Раз массив многомерный - самая простая ошибка - искать не на том уровне, где тот должен быть.


-----
PostgreSQL DBA
 
 Top
Vinyl
Отправлено: 04 Сентября, 2012 - 18:49:23
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 645
Дата рег-ции: Янв. 2012  
Откуда: Армавир, Краснодарский край


Помог: 15 раз(а)




Элементу массива с ключом u как присвоено значение?
Если пишете
PHP:
скопировать код в буфер обмена
  1. $arr['u'] .= "Что-то там...";

т.е., пристыковываете значение ( ".=" вместо "=" ), из-за этого такое предупреждение бывает


-----
Пессимисты пользуются die(), оптимисты - exit()
 
 Top
BlackHacker
Отправлено: 04 Сентября, 2012 - 18:59:06
Post Id


Новичок


Покинул форум
Сообщений всего: 38
Дата рег-ции: Май 2010  


Помог: 0 раз(а)




Мелкий пишет:
Дальше по тексту ошибки написано даже, в какой строке проблема. Раз массив многомерный - самая простая ошибка - искать не на том уровне, где тот должен быть.

Так я знаю, где проблема, оттуда и взял индекс. Если бы что-то было не верно, код бы не работал. Но все работает, просто по какой-то причине ошибку пишет.

Vinyl, массив заполняется следующим образом:

PHP:
скопировать код в буфер обмена
  1. function buildrequest(параметры){
  2. $result = curl_exec($ch); // запрос curl
  3. $result=substr($result, 0, -33); //обрезаю лишние символы ответа
  4. $result= str_replace("'", "", $result); //убираю кавычки
  5. $result = load_json_utf8($result);//кодировка в utf-8, и возврат json-массива
  6. return $result;
  7. }
  8.  
  9. function load_json_utf8($content_str)
  10. {
  11.         $content_str=substr(
  12.                 $content_str,      
  13.                 min(
  14.                         strpos($content_str.'[','['),
  15.                         strpos($content_str.'{','{')
  16.                 )
  17.         );
  18.         return json_decode($content_str, true);  
  19. }
  20.  
  21. $result=buildrequest(параметры);//заполняю массив
  22. echo $result['u']['i'];//выводит нужные данные, которые там ЕСТЬ. Но так же почему-то пишет ошибку
  23.  
 
 Top
Vinyl
Отправлено: 04 Сентября, 2012 - 19:01:14
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 645
Дата рег-ции: Янв. 2012  
Откуда: Армавир, Краснодарский край


Помог: 15 раз(а)




Я бы не заморачивался:
Подмигивание


-----
Пессимисты пользуются die(), оптимисты - exit()
 
 Top
BlackHacker
Отправлено: 04 Сентября, 2012 - 19:03:59
Post Id


Новичок


Покинул форум
Сообщений всего: 38
Дата рег-ции: Май 2010  


Помог: 0 раз(а)




Vinyl пишет:
Я бы не заморачивался:
Подмигивание

придется обойтись этим решением) но теперь мне это не даст покоя, что где-то там ошибка) потому что мне не понятна ее причина
 
 Top
armancho7777777 Супермодератор
Отправлено: 04 Сентября, 2012 - 19:10:38
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




Проверьте:
PHP:
скопировать код в буфер обмена
  1. echo (isset($result['u']['i'])) ? $result['u']['i'] : '';
 
 Top
BlackHacker
Отправлено: 04 Сентября, 2012 - 19:17:11
Post Id


Новичок


Покинул форум
Сообщений всего: 38
Дата рег-ции: Май 2010  


Помог: 0 раз(а)




armancho7777777 пишет:
Проверьте:
PHP:
скопировать код в буфер обмена
  1. echo (isset($result['u']['i'])) ? $result['u']['i'] : '';

теперь без ошибки выводит) спасибо

(Отредактировано автором: 04 Сентября, 2012 - 19:19:06)

 
 Top
armancho7777777 Супермодератор
Отправлено: 04 Сентября, 2012 - 19:20:07
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




Не за что.
 
 Top
DlTA
Отправлено: 04 Сентября, 2012 - 20:02:01
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010  


Помог: 53 раз(а)




а откуда такая уверенность что они там есть?
хотя б var_dump-ом гляньте что там есть.
 
 Top
BlackHacker
Отправлено: 06 Сентября, 2012 - 07:21:03
Post Id


Новичок


Покинул форум
Сообщений всего: 38
Дата рег-ции: Май 2010  


Помог: 0 раз(а)




всем спасибо, проблему решил. причина была в том, что в ряде случаев переменной не было. добавил проверку на наличие переменной, теперь все работает
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Хранение данных, их вывод и обработка »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB