static function multiMatch($query, $arr) { if ($query === null || $query === false || $query === '') { if (isset($arr[''])) { return $arr['']; } return false; } $arr = hq::prepare($arr); //print_r($arr); // echo ' <br />Q='; // print_r($query); // echo ' <br />'; if (is_string($query)) { $query = hq::parseQuery($query); } // echo ' Q2='; // print_r($query); // echo ' <br />'; foreach ($arr as $key => $val) { if (hq::singleMatch($query, $key)) { return $val; } } return false; }
echo 'квартиры=>комнаты '; print_r(hq::prepare(array('квартиры' => 'комнаты'))); echo 'кв(а|о)ртиры=>комнаты '; print_r(hq::prepare(array('кв(а|о)ртиры' => 'комнаты'))); echo 'кв(а|о)ртиры '; print_r(hq::prepare(array('кв(а|о)ртиры'))); echo '!кв(а|о)ртиры '; print_r(hq::prepare(array('!кв(а|о)ртиры'))); echo '+кв(а|о)ртиры '; print_r(hq::prepare(array('+кв(а|о)ртиры'))); echo '!кв{а|о}ртиры '; print_r(hq::prepare(array('!кв{а|о}ртиры'))); echo 'ывыв кв{а|о}ртир{ант|}ы бла бла бла '; print_r(hq::prepare(array('ывы кв{а|о}ртир{ант|}ы бла бла бла'))); echo '+кв{а|о}ртиры '; print_r(hq::prepare(array('+кв{а|о}ртиры'))); echo '</pre>'; echo '<h1>match</h1>'; echo '<br />Must be true '; var_dump(HQ::match(array('кондиционеры москва' => true))); echo '<br />Must be true '; var_dump(HQ::match(array('кондиционер москве' => true))); echo '<br />Must be true '; var_dump(HQ::match(array('кондиционер в москве' => true))); echo '<br />Must be true '; var_dump(HQ::match(array('кондиционер' => true))); echo '<br />Must be true '; var_dump(HQ::match(array('москвы' => true))); echo '<br />Must be true '; var_dump(HQ::match(array('Москвы' => true))); echo '<br />Must be false ';