将数组中的数据添加到新数组中

时间:2012-04-17 10:06:16

标签: php arrays loops

我创建了一个数据数组,我可以从中循环遍历特定字段并回显这些值,但我需要做的是将这些值添加到新数组中,最终允许我找到值的平均值在新阵列中。正如我所说,我可以回应数据,我想我已经想到如何获得平均值,只要我可以创建新数组!任何帮助都会非常感激,因为我无法在任何地方找到答案,而且我的天赋也很低!

我的表包含大约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,

任何帮助都非常感谢!!

3 个答案:

答案 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;