亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何將數組關聯與 2 個鍵值相加

如何將數組關聯與 2 個鍵值相加

PHP
牛魔王的故事 2021-11-19 17:09:19
我試圖在關聯數組中用 2 個鍵條件對值求和,但沒有得到任何結果,只是不像預期的那樣。我的陣列:Array([0] => Array    (        [pid] => P1        [rid] => 1        [price] => 100    )[1] => Array    (        [pid] => P1        [rid] => 1        [price] => 120    )[2] => Array    (        [pid] => P1        [rid] => 1        [price] => 130    )[3] => Array    (        [pid] => P2        [rid] => 1        [price] => 80    )[4] => Array    (        [pid] => P2        [rid] => 1        [price] => 120    )[5] => Array    (        [pid] => P2        [rid] => 2        [price] => 150    ));我已經嘗試了How to GROUP BY 和 SUM PHP Array 中的一些代碼 ?或在 PHP 中對數組進行分組然后代碼變成:$groups = array();foreach ($array as $item) {   $key = $item['pid'];   if (!array_key_exists($key,$groups)) {      $groups[$key] = array(         'pid' => $item['pid'],         'rid'=>$item['rid'],         'price' => $item['price']      );   } else {   $groups[$key]['price'] += $item['price'];   }}我期望輸出數組:Array([0] => Array    (        [pid] => P1        [rid] => 1        [price] => 350    )    [1] => Array    (        [pid] => P2        [rid] => 1        [price] => 200    )[2] => Array    (        [pid] => P2        [rid] => 2        [price] => 150    ));我不知道如何用 array_reduce 和 foreach 來解決這個問題,請用其他參考打我或幫我解決這個問題。
查看完整描述

1 回答

?
倚天杖

TA貢獻1828條經驗 獲得超3個贊

如果$data是您的輸入數組,則可以使用以下代碼


$r = array();


foreach ( $data as $d ) {

    $key = $d['pid'] . '-' . $d['rid'];


    if( !isset ( $r[$key] ) ) {

        $r[$key] = $d;

    } else {

        $r[$key]['price'] += $d['price'];

    }

}

echo '<pre>';


print_r($r);

die;


查看完整回答
反對 回復 2021-11-19
  • 1 回答
  • 0 關注
  • 157 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號