Как отсортировать в Битрикс?

В Битриксе доступно несколько способов сортировки данных.

1. Сортировка при выборке данных из базы данных - можно использовать метод GetList() в классе CIBlockElement, чтобы выбрать элементы из инфоблока с заданными параметрами и отсортировать их по требующемуся полю. Пример:

$arSelect = Array("ID", "NAME");
$arFilter = Array("IBLOCK_ID"=>1, "ACTIVE_DATE"=>"Y", "ACTIVE"=>"Y");
$res = CIBlockElement::GetList(Array("SORT"=>"ASC"), $arFilter, false, false, $arSelect);
while($ob = $res->GetNextElement()){
    $arFields = $ob->GetFields();
    echo $arFields['ID'].": ".$arFields['NAME']."<br>";
}

2. Сортировка на стороне клиента - можно отсортировать результаты уже выбранных данных в массиве после запроса к базе данных. Пример:

$arData = array(
    array("ID" => 1, "NAME" => "Apple"),
    array("ID" => 3, "NAME" => "Orange"),
    array("ID" => 2, "NAME" => "Banana")
);

usort($arData, function($a, $b) {
    return $a["NAME"] <=> $b["NAME"];
});

foreach ($arData as $arItem) {
    echo $arItem["ID"].": ".$arItem["NAME"]."<br>";
}

3. Сортировка с использованием компонента Bitrix - можно использовать компоненты, такие как CIBlockElementList или CIBlockSectionList, которые уже имеют встроенную возможность сортировки данных. Пример:

$APPLICATION->IncludeComponent(
    "bitrix:news.list",
    ".default",
    array(
        "IBLOCK_TYPE" => "news",
        "IBLOCK_ID" => 1,
        "NEWS_COUNT" => 10,
        "SORT_BY1" => "ACTIVE_FROM",
        "SORT_ORDER1" => "DESC",
        "CACHE_TYPE" => "A",
        "CACHE_TIME" => 3600
    ),
    false
);

В этом примере компонент "news.list" выводит на страницу список новостей из инфоблока с ID 1, отсортированных по полю "ACTIVE_FROM" в порядке убывания.

Это лишь некоторые способы сортировки данных в Битриксе. В зависимости от конкретных требований и ситуации, можно использовать и другие методы и инструменты для сортировки данных в Битриксе.