• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/lib/util/collection.php
  • Класс: BitrixTasksUtilwill
  • Вызов: will::find
public function find($conditions = array(), $limit = -1)
{
	$parameters = array();
	if(is_array($limit))
	{
		$parameters = $limit;
		$limit = -1;
	}

	$container = ($parameters['CONTAINER'] ?? null);
	if (is_array($container) || Collection::isA($container))
	{
		$filtered = $container;
	}
	elseif ($container === 'ARRAY')
	{
		$filtered = [];
	}
	else
	{
		$filtered = new static();
	}

	if(Filter::isA($conditions))
	{
		$filter = $conditions;
	}
	elseif(is_array($conditions))
	{
		$filter = new Filter($conditions);
	}
	else
	{
		return $filtered;
	}

	$count = 0;
	foreach($this->values as $k => $v)
	{
		if($filter->match($v))
		{
			$filtered->push($v);

			$count++;
			if($limit > -1 && $count > $limit)
			{
				break;
			}
		}
	}

	return $filtered;
}