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]   

> Без описания
and_07
Отправлено: 24 Февраля, 2014 - 14:10:35
Post Id


Гость


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


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




исходные данные файл
PHP:
скопировать код в буфер обмена
  1.  
  2. Все товары
  3. Все товары / Авто
  4. Все товары / Авто / Автокосметика
  5. Все товары / Авто / Автокосметика / Автошампуни
  6. Все товары / Авто / Автокосметика / Автоэмали
  7. Все товары / Авто / Автокосметика / Грунтовка
  8. Все товары / Авто / Автокосметика / Нанопокрытия
  9. Все товары / Авто / Автокосметика / Очистители
  10. Все товары / Авто / Автокосметика / Полироли
  11. Все товары / Авто / Автокосметика / Шпатлевка
  12. Все товары / Авто / Автохимия
  13. Все товары / Авто / Автохимия / Антикоры
  14. Все товары / Авто / Автохимия / Антифризы
  15. Все товары / Авто / Автохимия / Герметики
  16.  



1 читаю из файла получаю массив
PHP:
скопировать код в буфер обмена
  1.  
  2. $arr = array(
  3. 0 =>Все товары,
  4. 1=> Все товары / Авто
  5. ....
  6. )
  7.  



2 далее перевожу массив в такой вид
PHP:
скопировать код в буфер обмена
  1.  
  2. $arr = array(
  3. 0 =>Все товары,
  4. 1=> array(
  5.            0=> Все товары,
  6.            1=> Авто
  7. ),
  8. 2=>array(
  9.            0=> Все товары,
  10.            1=> Авто,
  11.            2 => Автокосметика
  12. ),
  13. ....
  14. )
  15.  





не удается построить массив с ерархией

PHP:
скопировать код в буфер обмена
  1.  
  2. $arr = array(
  3. 'Все товары' => array(
  4.                                    'Авто'=>array(
  5.                                            'Автокосметика'=> array(
  6.                                             0=> Автошампуни,
  7.                                             1=> Автоэмали,
  8.                                             ....
  9.                                            )
  10.                                      ),
  11.  
  12.        ),
  13. ....
  14. )
  15.  
  16.  
 
 Top
Nikolai12
Отправлено: 24 Февраля, 2014 - 14:39:48
Post Id


Новичок


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


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




Лучше сразу хранить данные в таком виде:
PHP:
скопировать код в буфер обмена
  1.  
  2.     'Все товары' => array(
  3.          //.....
  4.     );
  5. );
  6.  


Для сохранения можно сериализовать массив и сохранить полученную строку в файл.

PHP:
скопировать код в буфер обмена
  1.  
  2. $file = fopen('file.txt', 'w');
  3. $string = serialize($array);
  4. fwrite($file, $string);
  5. fclose($file);
  6.  
 
 Top
Ch_chov
Отправлено: 24 Февраля, 2014 - 14:41:50
Post Id



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


Покинул форум
Сообщений всего: 2121
Дата рег-ции: Июль 2008  
Откуда: из города


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




Nikolai12 пишет:
Лучше сразу хранить данные в таком виде

Тут вроде обратная задача. Из файла получить массив правильной структуры.
 
 Top
and_07
Отправлено: 24 Февраля, 2014 - 14:43:13
Post Id


Гость


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


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




))) я понимаю что лучше
только эт не решает задачу
 
 Top
Ch_chov
Отправлено: 24 Февраля, 2014 - 15:05:52
Post Id



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


Покинул форум
Сообщений всего: 2121
Дата рег-ции: Июль 2008  
Откуда: из города


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




PHP:
скопировать код в буфер обмена
  1. $data = file('data.txt');
  2.  
  3. $code = '';
  4. foreach ($data as $line) {
  5.   $code .= '$result["' . str_replace(' / ', '"]["', trim($line)) . '"] = null;';
  6. }
  7. $result = eval($code . 'return $result;')
 
 Top
and_07
Отправлено: 25 Февраля, 2014 - 08:11:22
Post Id


Гость


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


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




всем пасиб
думаю тема закрыта
 
 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