我创建了一个数据数组,我可以从中循环遍历特定字段并回显这些值,但我需要做的是将这些值添加到新数组中,最终允许我找到值的平均值在新阵列中。正如我所说,我可以回应数据,我想我已经想到如何获得平均值,只要我可以创建新数组!任何帮助都会非常感激,因为我无法在任何地方找到答案,而且我的天赋也很低!
我的表包含大约25个字段,我根据会话变量提取了许多行。在我正在进行的实例中,我只需要从表中的1列中获取值,并将它们添加到数组中。下面的代码将循环遍历值,并一次回显1: -
while ($cdarray=mysql_fetch_array($calldata)) {
echo $cdarray['score_total'];
}
这给了我25555这是我期望的25,5,5,5
的4个值我试过
while ($cdarray=mysql_fetch_array($calldata)) {
$cdts = $cdarray['score_total'];
$cdtsar = array($cdts);
}
这导致$ cdts被赋值为5,
任何帮助都非常感谢!!
答案 0 :(得分:1)
这将从数组中获取数据,将其放入新数据并计算平均值。
$cdtsar = array();
while ($cdarray=mysql_fetch_array($calldata)) {
$cdtsar[] = $cdarray['score_total'];
}
$average = array_sum($cdtsar) / count($cdtsar);
答案 1 :(得分:1)
它实际打印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;
}
或者您可能让数据库计算您的平均值,如果更改查询是一个选项。
答案 2 :(得分:0)
如果要将元素分配给新数组,请使用
$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;