我有一個名爲view.htm
的頁面,根據用戶分配給金牌,銀牌和銅牌的結果顯示結果,以及他們是否選擇使用gdp或人口來計算得分從view.php
。我需要找到一種方法,以通過計算得分排序這些結果,然後將其限制在排名前10的。我的數據是從MySQL數據庫中接收到的,分數是在php頁面中計算的。我正在使用json_encode
對數據進行編碼以在頁面上顯示它。 $results
是一個二維數組。這是結果是什麼,當你從view.php呼應出來,如:如何使用計算值來排序數組,其中從mysql數據庫接收其餘數據?
{"gold":"0","silver":"0","bronze":"1","gdp":"20343461030","population":"34385000",
"country_name":"Afghanistan","score":"0.029082448742184"},{"gold":"0",
"silver":"0","bronze":"0","gdp":"12959563902","population":"3205000",
"country_name":"Albania","score":"0"},{"gold":"1","silver":"0","bronze":"0",
"gdp":"188681000000","population":"35468000","country_name":"Algeria",
"score":"0.14097214390436"}
下面是用於計算得分的PHP代碼:
$results = array();
while ($row = $res->fetchRow()){
$resGold = $row['gold'];
$resSilver = $row['silver'];
$resBronze = $row['bronze'];
$resGdp = $row['gdp'];
$resPopulation = $row['population'];
$resCountry = $row['country_name'];
$gold_score = ($resGold * $gold_value);
$silver_score = ($resSilver * $silver_value);
$bronze_score = ($resBronze * $bronze_value);
$total_medals = ($resGold + $resSilver + $resGold);
$perMillion = $resPopulation/1000000;
$perBillion = $resGdp/1000000000;
$score_pop = (($gold_score + $silver_score + $bronze_score)/$perMillion);
$score_gdp = ($perBillion/($gold_score + $silver_score + $bronze_score + 1));
if($population == 'true'){
$row['score'] = "$score_pop";
array_push($results,$row);
}
else if($gdp == 'true'){
$row['score'] = "$score_gdp";
array_push($results,$row);
}
}
任何幫助表示讚賞。 謝謝
它沒有訂購它 – 2013-05-08 15:36:49