Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

Вывод элементов из инфоблока с множественными значениями

00 голосов
2
Здравствуйте, нужна помощь. Есть инфоблок у элементов которого есть 2 поля с множественными значениями: USERS_VOTE и PHONE_VOTE. Чтобы вывести один элемент из этого инфоблока я пользуюсь следущей конструкцией:
Код
$arSelect = Array("ID", "NAME",  "PROPERTY_PHONE_VOTE", "PROPERTY_USERS_VOTE");
$arOrder = Array(   
   "TIMESTAMP_X" => "DESC",
);
$arFilter = Array(
   "IBLOCK_ID"=> $_REQUEST['iblockID'],
   "ID" => $_REQUEST['id']
);

$rsItems = CIBlockElement::GetList($arOrder,$arFilter, false, array("nPageSize"=>30),$arSelect);
while ($or = $rsItems->GetNext())
{
   $arResult[] = $or;
}

И на выходе получается результат:
Цитата
Array
(
[0] => Array
(
[ID] => 2846
[~ID] => 2846
[NAME] => 15
[~NAME] => 15
[PROPERTY_PHONE_VOTE_VALUE] => 666666
[~PROPERTY_PHONE_VOTE_VALUE] => 666666
[PROPERTY_PHONE_VOTE_VALUE_ID] => 135319
[~PROPERTY_PHONE_VOTE_VALUE_ID] => 135319
[PROPERTY_USERS_VOTE_VALUE] => 1647
[~PROPERTY_USERS_VOTE_VALUE] => 1647
[PROPERTY_USERS_VOTE_VALUE_ID] => 135315
[~PROPERTY_USERS_VOTE_VALUE_ID] => 135315
[TIMESTAMP_X] => 07.04.2011 00:47:00
[~TIMESTAMP_X] => 07.04.2011 00:47:00
)

[1] => Array
(
[ID] => 2846
[~ID] => 2846
[NAME] => 15
[~NAME] => 15
[PROPERTY_PHONE_VOTE_VALUE] => 666666
[~PROPERTY_PHONE_VOTE_VALUE] => 666666
[PROPERTY_PHONE_VOTE_VALUE_ID] => 135319
[~PROPERTY_PHONE_VOTE_VALUE_ID] => 135319
[PROPERTY_USERS_VOTE_VALUE] => 1647
[~PROPERTY_USERS_VOTE_VALUE] => 1647
[PROPERTY_USERS_VOTE_VALUE_ID] => 135314
[~PROPERTY_USERS_VOTE_VALUE_ID] => 135314
[TIMESTAMP_X] => 07.04.2011 00:47:00
[~TIMESTAMP_X] => 07.04.2011 00:47:00
)

[2] => Array
(
[ID] => 2846
[~ID] => 2846
[NAME] => 15
[~NAME] => 15
[PROPERTY_PHONE_VOTE_VALUE] => 666666
[~PROPERTY_PHONE_VOTE_VALUE] => 666666
[PROPERTY_PHONE_VOTE_VALUE_ID] => 135320
[~PROPERTY_PHONE_VOTE_VALUE_ID] => 135320
[PROPERTY_USERS_VOTE_VALUE] => 1647
[~PROPERTY_USERS_VOTE_VALUE] => 1647
[PROPERTY_USERS_VOTE_VALUE_ID] => 135315
[~PROPERTY_USERS_VOTE_VALUE_ID] => 135315
[TIMESTAMP_X] => 07.04.2011 00:47:00
[~TIMESTAMP_X] => 07.04.2011 00:47:00
)

[3] => Array
(
[ID] => 2846
[~ID] => 2846
[NAME] => 15
[~NAME] => 15
[PROPERTY_PHONE_VOTE_VALUE] => 666666
[~PROPERTY_PHONE_VOTE_VALUE] => 666666
[PROPERTY_PHONE_VOTE_VALUE_ID] => 135320
[~PROPERTY_PHONE_VOTE_VALUE_ID] => 135320
[PROPERTY_USERS_VOTE_VALUE] => 1647
[~PROPERTY_USERS_VOTE_VALUE] => 1647
[PROPERTY_USERS_VOTE_VALUE_ID] => 135314
[~PROPERTY_USERS_VOTE_VALUE_ID] => 135314
[TIMESTAMP_X] => 07.04.2011 00:47:00
[~TIMESTAMP_X] => 07.04.2011 00:47:00
)

)

А должен быть как я понимаю только один элемент, у кторого у этих множественных полей несколько значений,что то вроде:
Код
Array
(
[0] => Array
(
[ID] => 2846
[~ID] => 2846
[NAME] => 15
[~NAME] => 15
[PROPERTY_PHONE_VOTE_VALUE] => Array(
[0] => 1 
[1] => 2
)
[PROPERTY_PHONE_VOTE_VALUE_ID] => Array(
[0] => 1 
[1] => 2
)

) 

что я делаю не так?
спросил 15 Март, 13 от Ktena (160 баллов)

2 Ответы

00 голосов
Цитата
ewewew0790 пишет:
что я делаю не так?
Вы не читаете мануалы:
Код
Примечание: если в массиве используются свойство, являющееся множественным, то для элементов, где используются несколько значений этого свойства, будет возвращено несколько записей вместо одной. Для решения этой проблемы инфоблоки нужно перевести в Режим хранения свойств в отдельных таблицах, в этом случае для свойства будет отдаваться массив значений. Либо можно не указывать свойства в параметрах выборки, а получать их значения на каждом шаге перебора выборки с помощью _CIBElement::GetProperties().
ответил 15 Март, 13 от Miko (340 баллов)
00 голосов
ewewew0790,
Спасибо, что ткнули носом
ответил 19 Март, 13 от Ktena (160 баллов)

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

0 голосов
2 ответов
+1 голос
1 ответ
0 голосов
3 ответов
спросил 06 Март, 14 от Texnik (1,860 баллов)
0 голосов
3 ответов
0 голосов
7 ответов