• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/lib/manager/task/parameter.php
  • Класс: BitrixTasksManagerTaskParameter
  • Вызов: Parameter::mergeData
static function mergeData($primary = array(), $secondary = array())
{
	// $primary - came in request
	// $secondary - currently in the entity

	$ixPrimary = array();
	if(is_array($primary))
	{
		foreach($primary as $v)
		{
			$ixPrimary[$v['CODE']] = $v;
		}
	}

	$ixSecondary = array();
	if(is_array($secondary))
	{
		foreach($secondary as $v)
		{
			$ixSecondary[$v['CODE']] = $v;
		}
	}

	// update secondary from primary

	foreach($ixSecondary as $code => $v)
	{
		if(array_key_exists($code, $ixPrimary))
		{
			if(intval($ixPrimary[$code]['ID']))
			{
				$ixSecondary[$code]['ID'] = intval($ixPrimary[$code]['ID']);
			}

			$ixSecondary[$code]['VALUE'] = $ixPrimary[$code]['VALUE'];
		}
	}

	// add absent
	foreach($ixPrimary as $code => $v)
	{
		if(!array_key_exists($code, $ixSecondary))
		{
			$ixSecondary[$code] = $v;
		}
	}

	return array_values($ixSecondary);
}