首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Arraymap忽略PHP中的重复值

使用Arraymap忽略PHP中的重复值
EN

Stack Overflow用户
提问于 2013-11-03 07:16:38
回答 3查看 334关注 0票数 0

数据库

代码语言:javascript
复制
Date        Price  qty
2012-10-21  $11 150
2012-10-22  $12 90
2012-10-22  $12 10
2012-10-23  $13 250

代码

代码语言:javascript
复制
$result = mysqli_query($con, "SELECT * FROM table ORDER BY 'date'");

    while ($row = mysqli_fetch_array($result)) {
        $orders[] = array(
            'Date' => $row['date'],
            'price' => $row['price'],
            'Quantity' => $row['qty']
        );
    }

我不需要得到重复的日期,对于那些重复的日期,需要得到平均的priceQty的和,如下例所示:

示例

代码语言:javascript
复制
Date        Price  qty
2012-10-21  $11 150
2012-10-22  $12 100
2012-10-23  $13 250

我试着使用Array-map,但是我在这个帮助上失败了,我们真的很感激

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-11-03 07:21:32

我建议使用GROUP BY和相应的聚合函数使用这个查询将问题转移到数据库中

代码语言:javascript
复制
SELECT `date`, AVG( `price` ), SUM( `qty`)
FROM `table`
GROUP BY `date`
ORDER BY `date`

一般来说,让MySQL做这样的工作比首先将数据传输到您的应用程序并在那里重新排列要好得多。

票数 2
EN

Stack Overflow用户

发布于 2013-11-03 07:22:37

更改查询

代码语言:javascript
复制
SELECT Date, AVG(Price), SUM(Qty) FROM table
GROUP BY Date

或更改php以检查数组中的日期并计算平均值和和。

票数 0
EN

Stack Overflow用户

发布于 2013-11-03 07:24:43

你能试试这个吗

代码语言:javascript
复制
   $result = mysqli_query($con, "SELECT date, AVG(Price) as price, SUM(qty) FROM table GROUP BY date ORDER BY date");

   while ($row = mysqli_fetch_array($result)) {
    $orders[] = array(
        'Date' => $row['date'],
        'price' => $row['price'],
        'Quantity' => $row['qty']
     );
   }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19750706

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档