/// Subranking within the results (the higher the worse).
public $iResultRank = 0;
+ public function debugInfo()
+ {
+ return array(
+ 'Table' => $this->iTable,
+ 'ID' => $this->iId,
+ 'House number' => $this->iHouseNumber,
+ 'Exact Matches' => $this->iExactMatches,
+ 'Result rank' => $this->iResultRank
+ );
+ }
+
public function __construct($sId, $iTable = Result::TABLE_PLACEX)
{
return $sHousenumbers;
}
+
+ /**
+ * Split a result array into highest ranked result and the rest
+ *
+ * @param object[] $aResults List of results to split.
+ *
+ * @return array[]
+ */
+ public static function splitResults($aResults)
+ {
+ $aHead = array();
+ $aTail = array();
+ $iMinRank = 10000;
+
+ foreach ($aResults as $oRes) {
+ if ($oRes->iResultRank < $iMinRank) {
+ $aTail = array_merge($aTail, $aHead);
+ $aHead = array($oRes->iId => $oRes);
+ $iMinRank = $oRes->iResultRank;
+ } elseif ($oRes->iResultRank == $iMinRank) {
+ $aHead[$oRes->iId] = $oRes;
+ } else {
+ $aTail[$oRes->iId] = $oRes;
+ }
+ }
+
+ return array('head' => $aHead, 'tail' => $aTail);
+ }
}