我创建了一个数据数组,我可以从中循环访问特定字段并回显这些值,但我需要做的是将这些值添加到新数组中,最终允许我找到新数组中值的平均值。正如我所说,我可以回显出数据,我想我已经想出了如何获得平均值,只要我可以创建新数组!任何帮助将不胜感激,因为我在任何地方都找不到答案,而且我的人才不足!
我的表包含大约 25 个字段,我根据会话变量提取出许多行。在 im 处理的实例中,我只需要从表中的 1 列中获取值,并将它们添加到数组中。下面的代码将遍历这些值,并将它们回显出来,一次 1 个:-
while ($cdarray=mysql_fetch_array($calldata)) {
echo $cdarray['score_total'];
}
这给了我 25555,这是我期望的 4 个值 25、5、5、5
我试过了
while ($cdarray=mysql_fetch_array($calldata)) {
$cdts = $cdarray['score_total'];
$cdtsar = array($cdts);
}
这导致$cdts被分配的值为 5,
任何帮助非常感谢!!
这将从数组中获取数据,将其放入新数组中并计算平均值。
$cdtsar = array();
while ($cdarray=mysql_fetch_array($calldata)) {
$cdtsar[] = $cdarray['score_total'];
}
$average = array_sum($cdtsar) / count($cdtsar);
它实际上打印 25 和 5 以及 5 和 5,但中间没有空格,所以它看起来像"25555"。要自行验证这一点,请执行以下操作:
while ($cdarray=mysql_fetch_array($calldata)) {
echo $cdarray['score_total'];
echo " / ";
}
要获得平均值,您可以使用
$sum = $count = 0;
$average = null;
while ($cdarray=mysql_fetch_array($calldata)) {
$sum += $cdarray['score_total'];
++$count;
}
// Make sure to guard against divide by zero
if ($count) {
$average = $sum / $count;
}
或者,如果可以选择更改查询,则可以让数据库为您计算平均值。
如果要
将元素分配给新数组,请使用这样的方法
$cdtsar = array();
while ($cdarray=mysql_fetch_array($calldata)) {
array_push($cdtsar,$cdarray['score_total']);
}
查找数组的平均值
$sum = array_sum($cdtsar);
$num = sizeof($cdtsar);
$avg = $sum/$num;
echo $avg;