thinkphp5 - Bagaimanakah thinkphp beroperasi jika terdapat tatasusunan yang berkaitan dalam tatasusunan, ekstrak nilai dan tambahkannya bersama-sama?
仅有的幸福
仅有的幸福 2017-05-16 13:01:33
0
4
641

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,
    )
仅有的幸福
仅有的幸福

membalas semua(4)
伊谢尔伦

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']; 
    }
}
刘奇

Tulis gelung, nilai sama ada terdapat yang sama berdasarkan pid, gabungkannya, dan akhirnya jana tatasusunan baharu OK

phpcn_u1582
$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

我想大声告诉你

// 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);       
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan