在循环中显示唯一值

时间:2017-07-07 03:01:27

标签: php arrays

我的数据库中有一个产品请求表。

Datas

我现在正在总结用户的请求。显示所有用户的请求而不重复产品名称(应该是唯一的),并获得总数量和金额。

这是我的代码和迄今为止我尝试过的内容。我尝试使用独特的数组。

$all_product_name = array();

foreach ( $rows as $row ) {

    $all_product_name[] = $row;
    $allproduct = array_unique( $all_product_name );
}

 foreach ($allproduct as $product) { 

    print_r($product);

 }

这给了我所有的产品,而不是唯一的产品名称。

我想要做的只是展示唯一的产品名称,以及所有产品的数量和数量的总和。

enter image description here

我被困,有什么帮助和想法?

1 个答案:

答案 0 :(得分:1)

解决方案1:使用查询,就像在mysql中那样 -     选择sum(prod_quantity),sum(prod_amount)group by prod_name

解决方案2:遍历行以创建prod_name的关联数组

foreach($rows as $row) {
    $prod_name = $row['prod_name'];
    $prod[$prod_name]['amount'] = $prod[$prod_name]['amount'] + $row['prod_amount'];
    $prod[$prod_name]['quantity'] = $prod[$prod_name]['quantity'] + $row['prod_quantity'];
}

输出将如下:

Array
(
    [Product1] => Array
    (
        [amount] => 2600 //sum of prod_amount
        [quantity] => 6  //sum of prod_quantity
    )

[Product2] => Array
    (
        [amount] => 6600
        [quantity] => 5
    )
)