• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/lib/manager/task/checklist.php
  • Класс: BitrixTasksManagerTaskCheckList
  • Вызов: CheckList::reArrangeBySortIndex
static function reArrangeBySortIndex(array $items)
{
	// not all items may have SORT_INDEX, so find the maximum and restore missing
	$maxSortIndex = 0;
	foreach($items as $item)
	{
		$sortIndex = intval($item['SORT_INDEX']);
		if($sortIndex > $maxSortIndex)
		{
			$maxSortIndex = $sortIndex;
		}
	}

	$index = array();
	foreach($items as $itemId => &$item)
	{
		if(!isset($item['SORT_INDEX']))
		{
			$item['SORT_INDEX'] = $maxSortIndex++;
		}

		$sortIndex = intval($item['SORT_INDEX']);
		$index[$sortIndex] = $itemId;
	}
	unset($item);

	ksort($index);

	$result = array();
	foreach($index as $itemId)
	{
		$result[$itemId] = $items[$itemId];
	}

	return $result;
}