rustam_kuliev88
@rustam_kuliev88

Как сделать такую обработку в XML PHP?

Есть связь, категория-подкатегория как сделать в цикле проверку чтобы можно было занести в базу, т.к. 2 раза повторяется Группы->Группа-опять Группы

["Группы"]=>
    object(SimpleXMLElement)#12 (1) {
      ["Группа"]=>
      object(SimpleXMLElement)#14 (3) {
        ["Ид"]=>
        string(36) "a917b1e6-b22e-11e1-a824-e0cb4e34a945"
        ["Наименование"]=>
        string(31) "Средства гигиены"
        ["Группы"]=>
        object(SimpleXMLElement)#18 (1) {
          ["Группа"]=>
          array(8) {
            [0]=>
            object(SimpleXMLElement)#17 (2) {
              ["Ид"]=>
              string(36) "ad379483-d2c0-11e2-808f-7446a0fe3124"
              ["Наименование"]=>
              string(31) "Бумага туалетная"
            }
            [1]=>
            object(SimpleXMLElement)#16 (2) {
              ["Ид"]=>
              string(36) "ad37946e-d2c0-11e2-808f-7446a0fe3124"
              ["Наименование"]=>
              string(63) "Диспенсеры для бумажных полотенец"
            }
            [2]=>
            object(SimpleXMLElement)#15 (2) {
              ["Ид"]=>
              string(36) "a917b1ee-b22e-11e1-a824-e0cb4e34a945"
              ["Наименование"]=>
              string(102) "Диспенсеры для покрытий на унитаз, покрытия для унитаза"
            }
            [3]=>
            object(SimpleXMLElement)#19 (2) {
              ["Ид"]=>
              string(36) "68ccf019-92ed-11e7-80d3-00155d0ae503"
              ["Наименование"]=>
              string(105) "Диспенсеры для протирочных материалов, протир. материалы"
            }
            [4]=>
            object(SimpleXMLElement)#20 (2) {
              ["Ид"]=>
              string(36) "a917b1e8-b22e-11e1-a824-e0cb4e34a945"
              ["Наименование"]=>
              string(52) "Диспенсеры туалетной бумаги"
            }
            [5]=>
            object(SimpleXMLElement)#21 (2) {
              ["Ид"]=>
              string(36) "a917b1eb-b22e-11e1-a824-e0cb4e34a945"
              ["Наименование"]=>
              string(52) "Полотенца бумажные листовые"
            }
            [6]=>
            object(SimpleXMLElement)#22 (2) {
              ["Ид"]=>
              string(36) "af161eba-b22e-11e1-a824-e0cb4e34a945"
              ["Наименование"]=>
              string(75) "Полотенца в рулонах бумажные и нетканные"
            }
            [7]=>
            object(SimpleXMLElement)#23 (2) {
              ["Ид"]=>
              string(36) "ab4e7f57-ca14-11e3-9243-7446a0fe3124"
              ["Наименование"]=>
              string(61) "Салфетки влажные и косметические"
            }
          }
        }
      }
    }
  • Вопрос задан
  • 81 просмотр
Пригласить эксперта
Ответы на вопрос 2
dklight
@dklight
php кодер - level 2.5
например так:
$result = [];
function Recurs($array, &$result)
{
    if ( has_groups($array)) // проверить simple_xml-ом, существование ключа ГРУППЫ
    {

        foreach(get_groups_child($array) as $k => $v)
        {
            $tmp = [];
            // save need gata e.g. id, description etc
            // $tmp[] = ...
            if (has_groups($v)) {
                Recurs($v, $result); // очередное погружение, если у потомка(группа) есть группы
            }
            // save or dump data
            $result[] = $tmp;
        }
    }
}
var_dump(Recurs($input_array, $result));

has_groups, get_groups_child - используя simple_xml реализовать поиск ключа ГРУППЫ и ГРУППА
Ответ написан
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Общий ответ - рекурсивно.
А что именно вызывает у вас затруднения?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы