• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/location/search/word.php
  • Класс: BitrixSaleLocationSearchWordTable
  • Вызов: WordTable::getBoundsForPhrase
static function getBoundsForPhrase($phrase)
{
	if(is_string($phrase))
		$words = self::parseString($phrase);
	elseif(is_array($phrase))
		$words = self::parseWords($phrase);
	else
		return array();

	// check for empty request

	$bounds = array();
	$sizes = array();
	$i = 0;
	foreach($words as $word)
	{
		$bound = self::getBoundsByWord($word);
		if(!intval($bound['INF']) && !intval($bound['SUP'])) // no such word
			return array();

		$bounds[$i] = $bound;

		$sizes[] = $bound['SUP'] - $bound['INF'];

		$i++;
	}

	// resort bounds to have sorted smallest to largest
	//asort($sizes, SORT_NUMERIC);

	$boundsSorted = array();
	foreach($sizes as $j => $size)
		$boundsSorted[] = $bounds[$j];

	// todo: here drop nested intervals, if any

	return $boundsSorted;
}