我有其中每列是一個國家數據的行的數據庫中陣列結構和鍵。在這個例子中,有4個國家(列)和3個行,儘管每個國家的數量都會發生變化,所以需要動態的輸入。我想標準化每一行,因此最小值爲0,最大值爲100,同時保留原始數據庫的4 x 3數組結構,以便根據請求提取行或列。如何保持calcultations
最終輸出將被傳遞到Javascript來以圖形的形式來呈現。 我已經想出了正確的數據正常化的代碼,但輸出是一個長陣列12 x 1和列名已被刪除。
我想知道是否有人知道我如何保持$ScoreNorm
的結構與$dataA
的輸出相同?
<?php
$conn=mysql_connect("relevant inputs");
if(! $conn)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("db-name");
$dataArray = "SELECT * FROM data2012"
or die(mysql_error());
$data2012=mysql_query($dataArray, $conn);
if(! $data2012)
{
die('Could not get data: ' . mysql_error());
}
$ScoreNorm = array();
$dataA = array();
while($row = mysql_fetch_assoc($data2012))
{
$dataA[] = $row;
$max_val = max($row);
$min_val = min($row);
foreach($row as $key => &$dataAitem)
{
$ScoreNorm[] = array((($dataAitem - $min_val)/($max_val - $min_val))*100);
}
}
echo json_encode($dataA) . "<br />";
echo json_encode($ScoreNorm) . "<br />";
echo $dataA[1]['France'];
mysql_close($conn);
?>
的輸出回波json_encode($數據A)是
[{"China":"11.000","Australia":"8.300","France":"12.600","UK":"6.220"},{"China":"2.000","Australia":"1.000","France":"4.000","UK":"5.000"},{"China":"39548.000","Australia":"25487.000","France":"245.000","UK":"2547852.000"}]
凡作爲輸出回波json_encode($ ScoreNorm)是
[[74.921630094],[32.6018808777],[100],[0],[25],[0],[75],[100],[1.54274187502],[0.990812162158],[0],[100]]
要重申,我想$ScoreNorm
保持$dataA format
。任何想法不勝感激。
[**在新的代碼,請不要使用'mysql_ *'功能**](http://bit.ly/phpmsql )。他們不再被維護[並且被正式棄用](http://j.mp/XqV7Lp)。看到[**紅框**](http://j.mp/Te9zIL)?學習[*準備的語句*](http://j.mp/T9hLWi),並使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli) - [這篇文章](http://j.mp/QEx8IB)將幫助你決定哪個。如果你選擇PDO,[這裏是一個很好的教程](http://j.mp/PoWehJ)。 –