为了账号安全,请及时绑定邮箱和手机立即绑定

关于Php数组的问题

关于Php数组的问题

PHP
呼啦一阵风 2019-03-13 01:28:11
Array ( [0] => Array ( [oid] => 190 [color] => [goods_name] => 测试要 [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] => 测试要 [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 ) ) 如上数组是 $a ; 我需求出上面数组的 goods_num 之和 最终组合成下面这个样的数组,请大神们帮个忙吧! Array ( [0] => Array ( [name] => 测试要 [number] => 2 ) [1] => Array ( [name] => A5笔记本子 [number] => 2 ) ) 完全没有头绪,也不知道怎么搞。。。。反正就是各种懵逼了!!!~ 我通过直接在数据库计算,出现这样的结果 Array ( [0] => Array ( [name] => 测试要 [number] => 2 ) [1] => Array ( [name] => A5笔记本子 [number] => 2 ) [2] => Array ( [name] => 测试要 [number] => 2 ) ) 但是去重又是个问题了。我实在不知道咋搞了。。还是得求大神啊!!!
查看完整描述

4 回答

?
慕田峪4524236

TA贡献1875条经验 获得超5个赞

假设你的商品表为goods

select goods_name as name,sum(goods_num) as number from goods  group by name;
查看完整回答
反对 回复 2019-03-18
?
小怪兽爱吃肉

TA贡献1852条经验 获得超1个赞

$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);
查看完整回答
反对 回复 2019-03-18
?
潇潇雨雨

TA贡献1833条经验 获得超4个赞

mysql考虑一下group by;
如果只考虑你当前数组的话,可以循环当前数组,判断goods_name

查看完整回答
反对 回复 2019-03-18
?
慕姐8265434

TA贡献1813条经验 获得超2个赞

楼上 回答的可以

查看完整回答
反对 回复 2019-03-18
  • 4 回答
  • 0 关注
  • 394 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信