Rumah > Soal Jawab > teks badan
Tatasusunan berikut mempunyai gid yang sama dan memerlukan Num untuk dikumpul Mereka dengan gid yang berbeza dipaparkan secara langsung tanpa sebarang operasi.
Array
(
[0] => Array
(
[id] => 1
[no] => WF20170001
[wid] => 1
[gid] => 1
[num] => 4
[price] => 2.55
[amount] => 10.20
[buyer] => 顾文君
[invoice] => 123456789
[date] => 2017-03-28
[remarks] => 测试数据
[cid] => pc001
[class] => 办公用品
[name] => 笔记本电脑
[type] => Acer Aspire E1-410G
[unit] => 台
[warehouse_name] => 办公用品仓库
)
[1] => Array
(
[id] => 3
[no] => WF20170001
[wid] => 1
[gid] => 5
[num] => 5
[price] => 100.00
[amount] => 500.00
[buyer] => 顾文君
[invoice] => 1231241
[date] => 2017-04-14
[remarks] => 入库测试
[cid] => tf001
[class] => 办公用品
[name] => 打印机碳粉
[type] => 88A
[unit] => 支
[warehouse_name] => 办公用品仓库
)
[2] => Array
(
[id] => 4
[no] => WF20170001
[wid] => 1
[gid] => 2
[num] => 1
[price] => 4500.00
[amount] => 4500.00
[buyer] => 张秀珍
[invoice] => 4558895
[date] => 2017-04-09
[remarks] => 入库测试
[cid] => pc002
[class] => 办公用品
[name] => 笔记本电脑
[type] => Acer Aspire E5-571G-58WT
[unit] => 台
[warehouse_name] => 办公用品仓库
)
[3] => Array
(
[id] => 5
[no] => WF20170002
[wid] => 1
[gid] => 3
[num] => 1
[price] => 88.00
[amount] => 88.00
[buyer] => 顾文君
[invoice] => 556789
[date] => 2017-04-09
[remarks] => 测试数据
[cid] => ow
[class] => 办公用品
[name] => 万用表
[type] => 万用表
[unit] => 台
[warehouse_name] => 办公用品仓库
)
[4] => Array
(
[id] => 12
[no] => WF20170001
[wid] => 1
[gid] => 1
[num] => 1
[price] => 2.55
[amount] => 2.55
[buyer] => 顾文君
[invoice] => 53412312
[date] => 2017-06-05
[remarks] => 无
[cid] => pc001
[class] => 办公用品
[name] => 笔记本电脑
[type] => Acer Aspire E1-410G
[unit] => 台
[warehouse_name] => 办公用品仓库
)
)
怪我咯2017-06-06 09:56:16
$arr = array(
array(
'gid' => 1,
'num' => 4,
),
array(
'gid' => 1,
'num' => 4,
),
array(
'gid' => 3,
'num' => 3,
),
array(
'gid' => 4,
'num' => 4,
),
);
$result = array();
foreach($arr as $val) {
if(!isset($result[$val['gid']])) {
$result[$val['gid']] = $val;
continue;
}
$result[$val['gid']]['num'] += $val['num'];
}
var_dump("<pre>", $result);die;
滿天的星座2017-06-06 09:56:16
Adakah anda mendapati perkara ini daripada data dalam pangkalan data? Jika ya, terus gunakan pernyataan sql untuk menyahduplikasi gid, dan kemudian gunakan sum() untuk mengumpul nombor, dan anda boleh mendapatkan hasilnya.
習慣沉默2017-06-06 09:56:16
$ret = [['gid' => 2,'num' => 5],['gid' => 3,'num' => 5],['gid' => 2,'num' => 6]];
$newret = array();
foreach($ret as $key => $val){
$newret[$val['gid']]['gid'] = $val['gid'];
$newret[$val['gid']]['num'] += $val['num'];
}
sort($newret);
//结果
Array
(
[0] => Array
(
[gid] => 2
[num] => 11
)
[1] => Array
(
[gid] => 3
[num] => 5
)
)