- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/attribute/fieldattributemanager.php
- Класс: Bitrix\Crm\Attribute\FieldAttributeManager
- Вызов: FieldAttributeManager::sortPhasesBySortAscAndIdDesc
static function sortPhasesBySortAscAndIdDesc(array $phases): array
{
$sortData = [
'sort' => [],
'id' => [],
'keys' => [],
'phases' => [],
];
$isError = false;
foreach ($phases as $key => $phase)
{
if (
isset($phase['SORT'])
&& is_numeric($phase['SORT'])
&& $phase['SORT'] > 0
&& isset($phase['ID'])
&& $phase['ID'] > 0
)
{
$sortData['sort'][] = (int)$phase['SORT'];
$sortData['id'][] = (int)$phase['ID'];
$sortData['keys'][] = $key;
}
else
{
$isError = true;
break;
}
}
if (
!$isError
&& array_multisort(
$sortData['sort'], SORT_ASC, SORT_NUMERIC,
$sortData['id'], SORT_DESC, SORT_NUMERIC,
$sortData['keys']
)
)
{
foreach ($sortData['keys'] as $key)
{
$sortData['phases'][$key] = $phases[$key];
}
$phases = $sortData['phases'];
}
return $phases;
}