鍍金池/ 問(wèn)答/PHP/ 關(guān)于Php數(shù)組的問(wèn)題

關(guān)于Php數(shù)組的問(wèn)題

Array
(
    [0] => Array
        (
            [oid] => 190
            [color] => 
            [goods_name] => 測(cè)試要
            [goods_num] => 1
            [goods_price] => 0.01
            [id] => 44
            [img] => /Public/Uploads/2017-12-13/5a30fa5763bdb.jpg
            [user_openid] => oWWUP0dieOLSHl3CzjyHIcIdhtVo
            [order_number] => 20181513226463
            [tid] => 92
            [status] => 1
            [tuiid] => 
            [aid] => 
            [gid] => 
            [corm_time] => 1514862004
        )

    [1] => Array
        (
            [oid] => 191
            [color] => 
            [goods_name] => A5筆記本子
            [goods_num] => 2
            [goods_price] => 0.01
            [id] => 43
            [img] => /Public/Uploads/2017-12-06/5a27add5325d1.jpg
            [user_openid] => oWWUP0dieOLSHl3CzjyHIcIdhtVo
            [order_number] => 20181513241259
            [tid] => 93
            [status] => 1
            [tuiid] => 
            [aid] => 
            [gid] => 
            [corm_time] => 1514862004
        )

    [2] => Array
        (
            [oid] => 193
            [color] => 
            [goods_name] => 測(cè)試要
            [goods_num] => 1
            [goods_price] => 0.01
            [id] => 46
            [img] => /Public/Uploads/2017-12-13/5a30fa5763bdb.jpg
            [user_openid] => oWWUP0dieOLSHl3CzjyHIcIdhtVo
            [order_number] => 20181513241259
            [tid] => 93
            [status] => 1
            [tuiid] => 
            [aid] => 
            [gid] => 
            [corm_time] => 1514862004
        )

)

如上數(shù)組是 $a ;

我需求出上面數(shù)組的 goods_num 之和 最終組合成下面這個(gè)樣的數(shù)組,請(qǐng)大神們幫個(gè)忙吧!

Array
(
    [0] => Array
        (
            [name] => 測(cè)試要
            [number] => 2
        )

    [1] => Array
        (
            [name] => A5筆記本子
            [number] => 2
        )

)

完全沒(méi)有頭緒,也不知道怎么搞。。。。反正就是各種懵逼了?。?!~

我通過(guò)直接在數(shù)據(jù)庫(kù)計(jì)算,出現(xiàn)這樣的結(jié)果

Array
(
    [0] => Array
        (
            [name] => 測(cè)試要
            [number] => 2
        )

    [1] => Array
        (
            [name] => A5筆記本子
            [number] => 2
        )

    [2] => Array
        (
            [name] => 測(cè)試要
            [number] => 2
        )
)

但是去重又是個(gè)問(wèn)題了。我實(shí)在不知道咋搞了。。還是得求大神啊?。。?/p>

回答
編輯回答
硬扛

mysql考慮一下group by;
如果只考慮你當(dāng)前數(shù)組的話,可以循環(huán)當(dāng)前數(shù)組,判斷goods_name

2018年8月20日 06:27
編輯回答
病癮

假設(shè)你的商品表為goods

select goods_name as name,sum(goods_num) as number from goods  group by name;
2017年1月21日 01:34
編輯回答
扯機(jī)薄

樓上 回答的可以

2017年6月24日 16:24
編輯回答
吃藕丑
$arr = [
        ['goods_name' => 'a', 'goods_num' => 1], 
        ['goods_name' => 'b', 'goods_num' => 1], 
        ['goods_name' => 'c', 'goods_num' => 1], 
        ['goods_name' => 'a', 'goods_num' => 2], 
        ['goods_name' => 'a', 'goods_num' => 3], 
        ['goods_name' => 'a', 'goods_num' => 5], 
        ['goods_name' => 'a', 'goods_num' => 8], 
        ['goods_name' => 'b', 'goods_num' => 8], 
        ['goods_name' => 'd', 'goods_num' => 9], 
       ];

$arr = array_reduce($arr, function($group, $item) {
    $group[$item['goods_name']][] = $item['goods_num'];
    return $group;
}, []);

$arr = array_map(function ($i) {
    return array_sum($i);
}, $arr);

print_r($arr);
2018年8月24日 01:51