首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何计数PHP中mysql查询中的数组值,以及如何将第二列与计数结果关联

如何计数PHP中mysql查询中的数组值,以及如何将第二列与计数结果关联
EN

Stack Overflow用户
提问于 2017-09-20 09:46:03
回答 2查看 1.4K关注 0票数 0

我试图做的是从表中选择*,然后获取列中重复行的计数,但也有与结果关联的另一列(make)。

例:

期望产出:

制造模型 Qty

福特福克斯3

福特嘉年华5

福特蒙迪欧1

宝马M3 1

奥迪A4 2

奥迪A3 4

当前产出:

模型 Qty

重点3

嘉年华5

蒙迪奥1

M3 1

A4 2

A3 4

我的代码:

代码语言:javascript
复制
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);

$modelArray = [];

foreach ($rows as $row) {

    $modelArray[] = $row['model'];

}

$result = array_count_values($modelArray);

foreach ($result as $model=>$qty) {

    echo $model." ".$qty;

}

我不知道如何使用array_count_values()函数在我的结果中包括'make‘列。

我想我可能做错了,因为这似乎是一个相当常见的任务,但我找不到任何关于如何这样做的信息。

如能提供任何帮助,将不胜感激。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-09-20 10:02:52

我要问的是,您要做的是一个GROUP BY语句。这里

您当前的查询是SELECT make, model FROM table

然后使用array_count_values对重复数据进行计数。我认为您需要使用这样的GROUP语句来更改查询。

代码语言:javascript
复制
SELECT make, model, COUNT(1) AS qty FROM table GROUP BY make, model

使用该查询,可以使用以下代码回显结果。

代码语言:javascript
复制
foreach ($rows as $row) {

    echo $row['make'] . " " . $row['model'] . " " . $row['qty'];

}
票数 1
EN

Stack Overflow用户

发布于 2017-09-20 09:59:22

尝尝这个

代码语言:javascript
复制
<?php 
    $rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
    $modelArray = [];
    $makes = []
    foreach ($rows as $row) {

        $modelArray[] = $row['model'];
        $makes[$row['model']]=$row['make'];

    }

    $result = array_count_values($modelArray);

    foreach ($result as $model=>$qty) {

        echo $makes[$model]." ".$model." ".$qty;

    }
?>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46318661

复制
相关文章

相似问题

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