Rumah > Soal Jawab > teks badan
Saya mempunyai jadual pembelian di pusat membeli-belah Terdapat pesanan dalam jadual pembelian. Beberapa pesanan mempunyai produk yang sama dengan pesanan lain jika pesanan ini adalah sama dengan kuantiti pembelian produk dalam pesanan Jika ID produk tertentu adalah sama, kuantiti dalam medan amaun akan ditindih Apakah yang perlu saya lakukan?
array(
[0]=>
'pid'=>7,
'jumlah'=>1,
[1]=>
'pid'=>7,
'jumlah'=>2,
[2]=>
'pid'=>8,
'jumlah'=>1,
)
Sebagai contoh, dalam tatasusunan ini, terdapat dua nilai pid yang sama saya akan menambah nilai gabungan untuk membentuk tatasusunan ini
array(
[0]=>
'pid'=>7,
'jumlah'=>3,
[1]=>
'pid'=>8,
'jumlah'=>1,
)
伊谢尔伦2017-05-16 13:03:33
Gunakan pid sebagai kunci tatasusunan baharu
$returnarr = array();
foreach($data as $val) {
if(isset($returnarr[$val['pid']])) {
$returnarr[$val['pid']]['amount'] += $val['amount'];
} else {
$returnarr[$val['pid']]['pid'] = $val['pid'];
$returnarr[$val['pid']]['amount'] = $val['amount'];
}
}
怪我咯2017-05-16 13:03:33
Tulis gelung, nilai sama ada terdapat yang sama berdasarkan pid, gabungkannya, dan akhirnya jana tatasusunan baharu OK
phpcn_u15822017-05-16 13:03:33
$allok = array();
foreach ($all as $key1 => &$value1){
foreach ($value1 as $key2 => $value2){
$allok[$value2['pid']] = $value2;
$allok[$value2['pid']] = $allok[$value2['pid']]['amount'] + $value2['amount'];
/*$queryproductshop = Model('Product')->queryidshop($value2['pid']);
$queryshopclass = Model('ProductClassify')->SaleConfigShopClass($queryproductshop['cid']);
$queryproductshop['class'] = $queryshopclass['title'];
$allshop[] = $queryproductshop;*/
}
}
dump($allok);
Saya telah menyelesaikannya sendiri, terlalu rumit untuk memikirkannya sendiri
我想大声告诉你2017-05-16 13:03:33
// Kod adalah seperti berikut, saya harap ia akan membantu anda.
$orderInfo = tatasusunan(
[0]=>
'pid'=>7,
'amount'=>1,
[1]=>
'pid'=>7,
'amount'=>2,
[2]=>
'pid'=>8,
'amount'=>1,
);
foreach ($orderInfo as $k=>$v)
{
$bKey=$v['pid'];
if(!array_key_exists($bKey, $orderArr))
{
$orderArr[$bKey] = [];
$sumData[$bKey] = 0;
}
$orderArr[$bKey]=$v;
$sumData[$bKey]+=$orderArr[$bKey]['amount'];
$orderArr[$bKey]['amount']=$sumData[$bKey];
}
var_dump($orderArr);