вот небольшой пример того, что я пытаюсь выполнить. У меня есть массив из запроса MySQL, который отображается. Я хочу отсортировать массив на основе коэффициента. Коэффициент рассчитывается в строке в зависимости от времени публикации статьи & количества полученных голосов. Что-то вроде этого:PHP - Сортировка Array Based Off Factor :: usort?
// ... MySQL query here
$votes = $row['0']
$seconds = strtotime($record->news_time)+time();
$sum_total = pow($votes,2)/$seconds;
Так массив Thats ближайшие выглядит примерно так:
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
Фактор не хранится в MySQL. Он динамически генерируется на основе времени и голосов. Голоса - $ rValue - переименованы в вопрос, так что это более понятно. :) Голоса в основном заполняются из значения «news_points» внутри массива. $ record - для каждого оператора, который я запускаю. – viablepath
@viablepath: Итак, как вы оцениваете 'news_points'? это какое-то общее, или это значение, указанное в записи? – prodigitalson