PHPを使用した最高スコアの計算に基づいて、配列から上位10件のレコードを取得する方法がわかりません。テーブルからレコードを取得し、計算を実行して結果を配列名スコアに格納し、残りのクエリ文字列 (配列) と関連付けて、その計算を JSON に渡すことができます。私の問題は、スコアが最も高い上位 10 件のレコードのみを実行する必要があることです。
$gold=$_GET['gold_input'];
$silver=$_GET['silver_input'];
$bronze=$_GET['bronze_input'];
$gdp_value=$_GET['gdp_checked'];
$link = new mysqli('localhost', 'root', '','coa123cdb');
$myArray = array();
$query = "SELECT * FROM coa123cdb.Country";
$result = mysqli_query($link, $query)
or die("Error: ".mysqli_error($link));
$row_cnt = $result->num_rows;
if ($result = $link->query($query)) {
$tempArray = array();
$score=array();
$counter=0 ;
while($row=mysqli_fetch_assoc($result)){
$tempArray['country_name'] = $row['country_name'];
$tempArray['gdp']=$row['gdp'];
$tempArray['population']=$row['population'];
$tempArray['gold']=$row['gold'];
$tempArray['silver']=$row['silver'];
$tempArray['bronze']=$row['bronze'];
if($gdp_value==0)
{
$score=($bronze*$tempArray['bronze'])+($silver*$tempArray['silver'])+($silver*$tempArray['gold']);
}
else
{
$score=($bronze*$tempArray[6]+$silver*$tempArray[5]+$silver*$tempArray[4])*$tempArray[1]/$tempArray[2]/10000;
}
$tempArray['score']=$score;
$data[]=$tempArray;
$counter++;
}
echo json_encode($data);
}
$result->close();
$link->close();
配列から上位 10 件のレコードのみを JSON オブジェクトに渡すにはどうすればよいか教えてください。