Intereting Posts
Как заставить php-страницу возвращать ошибку 503 (или что-то не-200) PHP GD: изображение невозможно отобразить, поскольку оно содержит ошибки Как найти первый неповторяющийся символ из строки? Есть ли в PHP встроенный отладочный журнал, например Ruby on Rails logger.info (), в файл development.log? Как я могу присоединиться к трем таблицам с помощью MYSQLi? Какой лучший обработчик PHP для APC Symfony 2 Создайте поле формы объекта с двумя свойствами Предложения для (полу) обеспечения высоких результатов в игре Flash / PHP Переход на другой PHP включает Доступный почтовый ящик Office356 с PHP Ошибка запроса PDO PHP в таблице имеет тип данных json (MySQL 5.7.8-rc) Увеличение дней до текущей текущей даты () WooCommerce – Автоматическое добавление или автоматическое удаление продукта в корзину Загрузка файла = 2 CakePHP – Как разрешить доступ к определенным страницам без проверки подлинности

Проблемная проблема – сортировка XML-данных с использованием PHP

У меня есть xml-файл, содержащий огромное количество данных о продукте. Мне нужно сортировать свои продукты в соответствии с данными моего поля (ProductRange).

$ProductRange=urldecode($_GET['Range']); 

Данные файла XML:

 <?xml version="1.0" standalone="yes"?> <Rows> <Row Code="10026" Name="Eden 36cm Shallow Round Planter Terracotta" ProductRange="Eden;3" ProductSubRange="EDEN 36CM ROUND PLANTER" /> <Row Code="10031" Name="Lid only for 30l Crystal and Uni Clear" ProductRange="Crystal;410;Uni;3" ProductSubRange="30Ltr LID" /> <Row Code="10088" Name="Casa Hipster Laundry Basket Silver" ProductRange="Casa;2" ProductSubRange="CASA HIPSTER LAUNDRY BASKET" /> <Row Code="10091" Name="Casa Hipster Laundry Basket Ice White" ProductRange="Casa;8;Laundry;1" ProductSubRange="CASA HIPSTER LAUNDRY BASKET" /> <Row Code="10200" Name="Eden Grid Cover Black" ProductRange="Eden;8" ProductSubRange="EDEN DRAIN TIDY/GRID COVER" /> <Row Code="10249" Name="Lid only for 50L Uni Assorted" ProductRange="Uni;1" ProductSubRange="50Ltr MAXI BOX LID" /> <Row Code="10259" Name="Uni 50L Box Clear" ProductRange="Uni" ProductSubRange="MAXIBOX" /> <Row Code="10269" Name="Eden 46cm Shallow Round Planter Terracotta" ProductRange="Eden;1" ProductSubRange="EDEN 46CM ROUND PLANTER" /> </Rows> 

Поле «ProductRange» содержит значение / порядок, т. Е. ProductRange = «{Диапазон продукта}; {Порядок сортировки продукта должен отображаться в ProductRange}". Например, продукт с кодом = «10031» и ProductRange = «Crystal; 410; Uni; 3» должен отображаться как в Crystal, так и в Sorting ASCENDING порядке 410 и Uni с порядком сортировки 3 соответственно. И ProductRange без точки с запятой, например ProductRange = " Uni "может отображаться в любом порядке. Обратите внимание: ProductRange может иметь несколько продуктов, как указано в XML с точкой с запятой.

Вопрос: Как я могу сортировать свои продукты, разбивая поле ProductRange с помощью PHP, чтобы он мог генерировать результаты, как в этом порядке сортировки по возрастанию:

Eden:

  Code: 10269 Name: Eden 46cm Shallow Round Planter Terracotta Code: 10026 Name: Eden 36cm Shallow Round Planter Terracotta Code: 10200 Name: Eden Grid Cover Black 

Uni:

  Code=10259 Name: Uni 50L Box Clear Code:10249 Name: Lid only for 50L Uni Assorted Code:10031 Name: Lid only for 30l Crystal and Uni Clear 

Кристалл:

  Code:10031 Name: Lid only for 30l Crystal and Uni Clear 

Casa:

  Code:10088 Name: Casa Hipster Laundry Basket Silver Code="10091" Name: Casa Hipster Laundry Basket Ice White 

и так далее…..

Как я могу извлечь данные в этом порядке? Пожалуйста, помогите мне.

Ваша предыдущая функция будет делать все, что вам нужно, это небольшие изменения

+ Изменить

  case 'ProductRange' : 

к

  case 'ProductRange' : case 'Name' : 

Или просто удалите оператор switch

Затем позвоните

 $list = groupBy($xml, "Name", array("show" => true,"delimiter" => " ","name" => "Eden")); print("<pre>"); foreach ( $list as $name => $value ) { foreach ( $value as $element ) { printf("Code:%s Name: %s\n",$element['Code'],$name); } } 

Вывод

 Code:10026 Name: Eden 36cm Shallow Round Planter Terracotta Code:10200 Name: Eden Grid Cover Black Code:10269 Name: Eden 46cm Shallow Round Planter Terracotta