【问题标题】:Merge sql query same columns values into one array将sql查询相同的列值合并到一个数组中
【发布时间】:2014-02-07 17:24:28
【问题描述】:

我有这个简单的查询。

SELECT purchase.Quantity*purchase.Price AS Total FROM purchase.

在代码点火器中,我通过以下方式将结果作为数组获取:$this->db->query($query)->result_array();

查询结果为:

array(2) { [0]=> array(1) { ["Total"]=> string(2) "42" } [1]=> array(1) { ["Total"]=> string(5) "10900" } }

我想要的是一个单一的数组 Total,它包含所有的值,比如

Total=[42,10900]

我的代码或查询中是否缺少任何内容?

【问题讨论】:

  • 你需要所有购买的总和吗?
  • 不。我需要将两列相乘
  • $output = array_map(function($v){ return $v['Total']; }, $result); ?
  • 我不确定您的确切需求是什么,但如果您想要总拨款,您可以使用SUM(purchase.Quantity*purchase.Price) AS Total

标签: php sql codeigniter


【解决方案1】:

使用foreach 循环可以轻松实现您想要的。如果我理解正确的话..

$total = array();
foreach ($query->result_array() as $row) {
   $total[] = $row['Total'];
}
print_r($total); // outputs something like this: Array (  [0] => 42 [1] => 10900  )

【讨论】:

  • 如果我不知道这里的属性名称怎么办?
  • 我不明白你怎么不知道列名...?
  • 如果它在运行时决定。
  • Total 可能是 TotalPurchase
  • 只能是 Total 还是 TotalPurchase?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-02-02
  • 1970-01-01
  • 1970-01-01
  • 2016-01-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多