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]   

> Описание: Фреймворк Yii, но это не главное
ZeiZ
Отправлено: 28 Сентября, 2012 - 23:25:20
Post Id



Частый гость


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


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




День добрый! Столкнулся с такой проблемой:
Проблема детская, но отладить не могу никак!

Есть таблица БД реализующая недо AjustedTree? т.е.:
id,pid,name

Через ActiveRecord (это не суть) получаю объект $dataProvider модели таблицы.

По структуре проета вложенность только 1-го уровня, поэтому реализую AT в лоб:

PHP:
скопировать код в буфер обмена
  1.  
  2. $dataArr = ($dataProvider->getData());
  3. foreach ($dataArr as $data){
  4.     if($data->pid == 0){
  5.         $treeArr[$data->id] = $data->name;
  6.     }else{
  7.         $treeArr[$data->pid][$data->id] = $data->name;
  8.     }
  9. }
  10. print_r($treeArr);
  11.  


и получаю вместо двумерного массива какую-то хню:

CODE (htmlphp):
скопировать код в буфер обмена
  1.        
  2. Array
  3. (
  4.     [1] => Во��ка
  5.     [2] => Коньяк
  6.     [3] => Нас��ойка
  7.     [4] => Виски
  8.     [8] => Абсент
  9.     [9] => Текила �
  10.     [10] => Ром
  11.     [11] => Ликёр
  12.     [12] => Х****    �
  13. )
  14.  


Казалось бы дело в кодировке, но уже работает 70% проекта и с проблемой кодировки не сталкивался. (на всякий случай в конфигах прописал инит БД SET NAMES utf8, все файлы проекта в нём же, прописан UTF8 в .htaccess, в метах вывода тоже UTF8)

Дело не в нём ибо если сделать в лоб:
PHP:
скопировать код в буфер обмена
  1.  
  2. foreach ($dataArr as $data){
  3.     if($data->pid == 0){
  4.         echo 'Категория: '.$data->name.' c ИД:'.$data->id.'<br>';
  5.     }else{
  6.         echo 'Подкатегория: '.$data->name.' Категории '.$data->pid.' c ИД:'.$data->id.'<br>';
  7.     }
  8.  
  9. }
  10.  


Выводит:


Категория: Водка c ИД:1
Категория: Коньяк c ИД:2
Категория: Настойка c ИД:3
Категория: Виски c ИД:4
Подкатегория: Лимонная Категории 1 c ИД:5
Подкатегория: Перцовка Категории 1 c ИД:6
Подкатегория: На травах Категории 3 c ИД:7
Категория: Абсент c ИД:8
Категория: Текила c ИД:9
Категория: Ром c ИД:10
Категория: Ликёр c ИД:11
Категория: Х**** c ИД:12
Подкатегория: Золотая Категории 9 c ИД:13
Подкатегория: полная Категории 12 c ИД:14


Извините за некую алко тему, но проект алко )

Если кто-то поймёт в чём дело, буду благодарен!
(Добавление)
Тему можно закрыть! Пятничная тупка! Радость
 
 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