• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/binding/entitybinding.php
  • Класс: Bitrix\Crm\Binding\EntityBinding
  • Вызов: EntityBinding::removeBindingsWithDuplicatingEntityIDs
static function removeBindingsWithDuplicatingEntityIDs(int $entityTypeID, array &$bindings): void
{
	self::validateEntityTypeId($entityTypeID);

	// No sense in search for duplicates in the array of 1 or 0 elements
 		if (count($bindings) < 2)
	{
		return;
	}

 		// Sort bindings by entityId
	$entityIds = self::prepareEntityIDs($entityTypeID, $bindings);
	array_multisort($bindings, SORT_ASC, $entityIds);

	$indexMax = count($bindings);
	for ($index = 1; $index < $indexMax; $index++)
	{
		$currentEntityId = self::resolveEntityID($entityTypeID, $bindings[$index]);
		$previousEntityId = self::resolveEntityID($entityTypeID, $bindings[$index - 1]);

		if ($currentEntityId === $previousEntityId)
		{
			$duplicatingIndex = self::findBindingIndexByEntityID($entityTypeID, $currentEntityId, $bindings);
			unset($bindings[$duplicatingIndex]);
		}
	}
}