В Laravel 5.6 ( PHP Version 7.1.15-0ubuntu0.17.10.1 ) делаю сортировку как среднее по 2м полям:
public function get_most_rating_artists()
{
try {
$limit = 0;
$tempMostRatingArtistsList = Artist::getArtistsList(ListingReturnData::LISTING, ['is_active' => 'A', 'show_related_votes' => 1, 'limit' => $limit]);
} catch (Exception $e) {
return response()->json([
'error_code' => 1,
'message' => $e->getMessage(),
], HTTP_RESPONSE_INTERNAL_SERVER_ERROR);
}
$mostRatingArtistsList= $tempMostRatingArtistsList->toArray();
$ret= uasort($mostRatingArtistsList, array($this,'mySortMethod') );
echo '<pre>$ret::'.print_r($ret,true).'</pre>'; // ЗАКОМЕНТАРИТЬ
echo '<pre>$mostRatingArtistsList::'.print_r($mostRatingArtistsList,true).'</pre>'; // ЗАКОМЕНТАРИТЬ
return response()->json([
'error_code' => 0,
'message' => '',
'mostRatingArtistsList' => $mostRatingArtistsList,
], HTTP_RESPONSE_OK);
} // public function get_most_rating_artists()
public function mySortMethod($a, $b)
{
$a_rating = round($a['related_votes_sum'] / $a['related_votes_count'],2);
$b_rating = round($b['related_votes_sum'] / $b['related_votes_count'],2);
if ($a_rating == $b_rating) {
return 0;
}
return ($a_rating < $b_rating) ? 1 : -1;
}
Код выше работает правильно но если закоментарить все строки вывода(как и должно быть) то получаю неотсортированный массив - и не поцму почему ?
Спасибо !