私は 2 つの mysql クエリを持っています。1 つはすべての友達を取得するためのもので、もう 1 つは詳細と各友達のポイントの合計を取得するためのものです。
$get_my_friends_query = mysqli_query($GLOBALS['connect'], "SELECT friend_user_id FROM tbl_friend_link WHERE tbl_friend_link.your_user_id = 1");
while($get_my_friends_result = mysqli_fetch_assoc($get_my_friends_query))
{
$get_friend_user_details_query = mysqli_query($GLOBALS['connect'], "SELECT tbl_registered_user.user_id, tbl_registered_user.first_name, tbl_registered_user.last_name, tbl_registered_user.profile_name, SUM(tbl_point.amount) FROM tbl_registered_user JOIN tbl_point ON tbl_registered_user.user_id = tbl_point.user_id WHERE tbl_registered_user.status = 1 AND tbl_registered_user.user_id = '" . $get_my_friends_result['friend_user_id'] ."' GROUP BY tbl_registered_user.user_id ORDER BY SUM(tbl_point.amount)");
$get_friend_user_details_result = mysqli_fetch_assoc($get_friend_user_details_query);
$result = array(
"done" => "true",
"name" => $get_friend_user_details_result['first_name'] . " " . $get_friend_user_details_result['last_name'],
"profile_name" => $get_friend_user_details_result['profile_name'],
"userID" => $get_friend_user_details_result['user_id'],
"points" => $get_friend_user_details_result['SUM(tbl_point.amount)'],
"number_friends" => mysqli_num_rows($get_my_friends_query),
"error_message" => ""
);
$row_array[] = $result;
}
echo json_encode($row_array);
ポイントがあるかどうかに関係なく結果を表示したいので、最初のクエリを使用しています。ポイントの SUM に基づいて結果を並べ替えたいのですが、その情報は 2 番目のクエリで取得されますが、$row_array で usort を使用する方法に関する適切な説明が見つかりませんでした。