Статьи

Случайная выборка в getList
02.09.2014 16:25:42
Теги: bitrix, getlist
Очень часто встречается задача сделать свою выборку элементов. Например нужно выбрать рандомно элементы для показа похожих товаров или сделать логическую связку.
Будем разбирать на примере выборки элементов из инфоблока методом CIBlockElement::GetList

ge.png

Как пользоваться данным методом описано в наших других статьях. Нам необходимо задать параметры выборки, выбираемые поля и сортировку.

В общем код выглядит так:

cod.png

        $arFilter = Array("IBLOCK_ID"=>$arResult["SECTION_ID"],
                            "ACTIVE_DATE"=>"Y", "ACTIVE"=>"Y",
                            "SECTION_ID"=>$arResult["SECTION"]["ID"]);
        $arSelect = Array("ID", "NAME", "DATE_ACTIVE_FROM", "SECTION_CODE");
        $arSort = Array("RAND"=>"ASC");
        $dbGet = CIBlockElement::GetList($arSort, $arFilter, false, Array("nTopCount"=>4),$arSelect);   
        while($arElem = $dbGet->Fetch()){
            $result[] = $arElem;
        }   

Рандомную выборку производит вот эта сортировка :

sort.png

Таким методом можно решить много проблем. Случайную выборку новостей, случайную выборку разделов инфоблока, случайную выборку сервисов.