我正在编写一个脚本来计算一组数据的众数、中位数和均值。我有十条记录存储在 MySQL 数据库和 PHP 数组中。脚本完成后,脚本将只使用存储在数据库中的数据而不是 PHP 数组,PHP 数组是用来测试代码的。
但我发现,使用 PHP 数组和 MySQL 数组时的结果是不同的。在 PHP 数组中,我有以下数据:
$arr = array(60, 70, 71, 76, 144, 151, 197, 229, 233, 233);
在我的 MySQL 数据库中,我有以下代码:
$data = mysql_query("SELECT amount FROM example") or die(mysql_error());
$arr = mysql_fetch_array($data);
数据是相同的,除了 MySQL 数据包含.00
在每条记录之后。在试图找出它给出错误结果的原因期间,我.00
从数据库中的每条记录中删除了 。数据仍然是错误的。
结果,当使用 PHP 数组时,我得到了以下(正确的)结果:
支付的平均(平均)价值 £146.4
最常发生
的支付价值 £233 支付的中值价值 £151
结果,当使用 MySQL 数组时,我得到以下(错误)结果:
支付的平均(平均)价值 144
英镑 最常发生的支付价值 144 英镑 支付的中值 144
英镑
我不知道为什么会发生这种情况。下面是我用来生成这些结果的 PHP 代码:
<?php
function arithmetic($array, $output = 'mean'){
switch($output){
// This case works out the mean
case 'mean':
$count = count($array);
$sum = array_sum($array);
$total = $sum / $count;
break;
// This case works out the median
case 'median':
rsort($array);
$middle = round(count($array) / 2);
$total = $array[$middle-1];
break;
// This case works out the mode
case 'mode':
$v = array_count_values($array);
arsort($v);
foreach($v as $k => $v){$total = $k; break;}
break;
}
return $total;
}
// PHP Array with data
//$arr = array(60, 70, 71, 76, 144, 151, 197, 229, 233, 233);
// MySQL Connection & Retrieval of data
$data = mysql_query("SELECT amount FROM example") or die(mysql_error());
$arr = mysql_fetch_array($data);
?>
有人有想法么?
更新:
我一直在玩 MySQL 查询,并使用以下代码:
$data = mysql_query("SELECT * FROM example") or die(mysql_error());
$arr = mysql_fetch_assoc($data);
print_r ($arr);
它仅显示以下结果:
数组 ( [id] => 1 [数量] => 144 )
所以真的,查询带来了所有的记录,而不仅仅是一个。