codeigniter中的PHP array_sum函数

时间:2011-10-17 10:24:33

标签: php mysql arrays codeigniter

以下代码是一个简单的select语句,它应该使用array_sum函数返回一个值。结果应该存储在一个数组中,然后在SUM函数中添加:

$this->db->select('period')
     ->from('calcdata');

$query = $this->db->get()->result_array();
$query = array_sum($query);

echo "SUM " . $query . "\n" ;
return $query;

这是“SUM 0”的结果,但在句点列中添加所有值后应为147。

以下代码有效,所以我不明白为什么数组会与此有任何不同:

$a = array(2, 4, 6, 8);
echo "sum(a) = " . array_sum($a) . "\n";

我使用codeigniter创建数组,有人知道这里有什么问题吗?

由于

1 个答案:

答案 0 :(得分:2)

尝试调用字段的内容,而不是整个结果数组:

$this->db->select('period')->from('calcdata');

$query = $this->db->get();

$period_array = array();
foreach ($query->result_array() as $row)
{
  $period_array[] = intval($row['period']); //can it be float also?
}
$total = array_sum($period_array);

更新:

@uzsolt是对的,我差点忘了Active Record类中有一个专用函数,select_sum();你也许想尝试一下,比如

$this->db->select_sum('period')->get('calcdata');

引用docs

  

$this->db->select_sum();

     

为您的查询写入“SELECT SUM(field)”部分。和。一样   select_max(),您可以选择包含要重命名的第二个参数   由此产生的领域。

     

$这 - > DB-> select_sum( '年龄'); $ query = $ this-> db-> get('members');   
//>生成:选择SUM(年龄)作为年龄FROM成员