• Модуль: 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;
}