簡體   English   中英

如何在PHP中從mysql查詢中計數數組值並將第二列與計數結果相關聯

[英]How can I count array values from mysql query in PHP and associate a second column with the count results

我想做的是從表中選擇*,然后獲取一列中重復行的計數,但還要將另一列(make)與結果關聯。

例如:

所需的輸出:

使 模型 數量

福特福克斯3

福特嘉年華5

福特蒙迪歐1

寶馬M3 1

奧迪A4 2

奧迪A3 4

電流輸出:

型號 數量

重點3

嘉年華5

蒙迪歐1

M3 1

A4 2

A3 4

我的代碼:

$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”列。

我認為我可能會以錯誤的方式進行操作,因為這似乎是一項相當常見的任務,但是我找不到有關如何執行此操作的任何信息。

任何幫助將不勝感激謝謝。

嘗試這個

<?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;

    }
?>

我邀請您嘗試執行的操作是GROUP BY語句。 這里
我為您提供的當前查詢是SELECT make, model FROM table
然后,您可以使用array_count_values計算重復數據。 我認為您需要使用GROUP BY語句更改查詢。

SELECT make, model, COUNT(1) AS qty FROM table GROUP BY make, model

使用該查詢,您可以使用此代碼回顯結果。

foreach ($rows as $row) {

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

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM