這裏是我想要完成的一點小背景。我有一個正在顯示的MySQL查詢中的數組。我想根據一個因素對數組進行排序。係數根據文章發佈時間以內嵌方式計算得出&它收到的投票數。事情是這樣的:PHP - 基於排序數組的排序因子:: usort?
// ... MySQL query here
$votes = $row['0']
$seconds = strtotime($record->news_time)+time();
$sum_total = pow($votes,2)/$seconds;
所以陣列多數民衆贊成在未來看起來是這樣的:
Array (
[0] => stdClass Object (
[id] => 13
[news_title] => Article
[news_url] => http://website.com/article/14
[news_root_domain] => website.com
[news_category] => Business
[news_submitter] => 2
[news_time] => 2013-02-18 12:50:02
[news_points] => 2
)
[1] => stdClass Object (
[id] => 14
[news_title] => Title
[news_url] => http://www.website.com/article/2
[news_root_domain] => www.website.com
[news_category] => Technology
[news_submitter] => 1
[news_time] => 2012-10-02 10:03:22
[news_points] => 8
)
)
我想用我上面提到的因素上述的陣列進行排序。這個想法是顯示列表中最高評分的文章(使用計算的因子),而不是數組進入的默認排序方法。看起來像usort可能是我最好的選擇,但讓我知道你都覺得呢?
爲什麼不使用MySQL對這個因素進行排序?否則,'$ record'是什麼? 「投票」在哪裏起作用?我沒有看到這一點。 – Madbreaks 2013-02-22 18:38:13
該因子未存儲在MySQL中。它是基於時間和投票動態生成的。票數是$ rValue - 在問題中重新命名,所以更清楚。 :)投票基本上來自數組內的「news_points」值。 $ record是我正在運行的每條語句。 – viablepath 2013-02-22 18:44:00
@viablepath:那麼你如何計算'news_points'?這是一種總計,還是隻是記錄中列出的價值? – prodigitalson 2013-02-22 18:55:03