]> git.openstreetmap.org Git - nominatim.git/blobdiff - lib/Result.php
Merge pull request #1923 from lonvia/split-indexing-for-boundries
[nominatim.git] / lib / Result.php
index d69ac62f1f7b28cc731a49146b830a59f0323f05..a67c2fe474910a20356ac05edafdac68e3168c17 100644 (file)
@@ -68,4 +68,32 @@ class Result
 
         return $sHousenumbers;
     }
 
         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);
+    }
 }
 }