@EvgenyJozef3000

Как разбить большой массив с элементами из разных инфоблоков на разделы, при обращении к $МАССИВ[НАЗВАНИЕ_ИНФОБЛОКА] и получать все его элементы?

Добрый день. Есть следующий код работы с API Bitrix:
$rsElement = CIBlockElement::GetList(array(), array("IBLOCK_ID" => array(4,2)), false, false, array());
while($arElement = $rsElement->Fetch())
{
  $elems[] = $arElement;
}

print_r($elems);

Который обращается сразу к нескольким инфоблокам "IBLOCK_ID" => array(4,2) и выводит все элементы с этих инфоблоков подряд списком в ассоциативном массиве.
Структура массива следующая:
array(
  [0] => array(
    ... (тут все поля элемента)
    [IBLOCK_NAME] = НАЗВАНИЕ_ИНФОБЛОКА_1
  )
  [1] => array(
    ... (тут все поля элемента)
    [IBLOCK_NAME] = НАЗВАНИЕ_ИНФОБЛОКА_2
  )
  ... (и так далее)
)


Как разделить этот весь массив, чтобы по обращению $МАССИВ["НАЗВАНИЕ_ИНФОБЛОКА"] можно было получить все элементы этого инфоблока? Чтобы стала структура массива следующая:
array(
  [НАЗВАНИЕ_ИНФОБЛОКА_1] => array(
    [0] => array(
      ... (тут все поля элемента)
      [IBLOCK_NAME] = НАЗВАНИЕ_ИНФОБЛОКА_1
    ),
    [1] => array(
      ... (тут все поля элемента)
      [IBLOCK_NAME] = НАЗВАНИЕ_ИНФОБЛОКА_1
    ),
    ...
  ),
  [НАЗВАНИЕ_ИНФОБЛОКА_2] => array(
    [0] => array(
      ... (тут все поля элемента)
      [IBLOCK_NAME] = НАЗВАНИЕ_ИНФОБЛОКА_2
    ),
    [1] => array(
      ... (тут все поля элемента)
      [IBLOCK_NAME] = НАЗВАНИЕ_ИНФОБЛОКА_2
    ),
    ...
  )
)


[0],[1] - это соответственно разные элементы инфоблока
Задача заключается в том, чтобы разбить огромный массив со всеми элементами из разных инфоблоков на так называемые разделы, то бишь, как я уже говорил, чтобы можно было обращаться к $МАССИВ["НАЗВАНИЕ_ИНФОБЛОКА"] и получать список всех элементов этого инфоблока
  • Вопрос задан
  • 109 просмотров
Решения вопроса 1
Anadi
@Anadi
Если ответ Вам помог мой, решением отметье его!
Так попробуйте
while($arElement = $rsElement->Fetch())
{
  $elems[$arElement["IBLOCK_CODE"]][] = $arElement;
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы