4 回答

TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超7個贊
數(shù)據(jù)是從哪里來的,如果從數(shù)據(jù)庫,可以使用sql中的order by關(guān)鍵字,如果是從搜索引擎里面數(shù)據(jù),也都應(yīng)當(dāng)有相應(yīng)的排序功能,一般的數(shù)據(jù)排序都不用php做的,

TA貢獻(xiàn)1779條經(jīng)驗(yàn) 獲得超6個贊
分頁的時候同樣加過濾條件的呀,或者你可以把數(shù)據(jù)都取出來,先排序,然后按分頁切割數(shù)組,如果實(shí)時性要求不高,可以做redis緩存一下

TA貢獻(xiàn)2012條經(jīng)驗(yàn) 獲得超12個贊
首先,你通過計(jì)算得到一個計(jì)算之后的距離數(shù)組.然后通過usort(),根據(jù)數(shù)組中的距離字段進(jìn)行排序,在根據(jù)你的page和pagesize分割數(shù)組,array_slice()。就可以實(shí)現(xiàn)了。或者你之前返回整個排序之后的數(shù)組到前端,用js進(jìn)行數(shù)組分割操作也是可以的。

TA貢獻(xiàn)1797條經(jīng)驗(yàn) 獲得超6個贊
從數(shù)據(jù)庫取數(shù)據(jù)的話:
舉個栗子:每頁10條數(shù)據(jù),用距離倒序排列
第一頁
select * from tableName where country='china' order by [距離] desc limit 0, 10;
第二頁
select * from tableName where country='china' order by [距離] desc limit 10, 10;
- 4 回答
- 0 關(guān)注
- 736 瀏覽
添加回答
舉報(bào)