1. 程式人生 > >php 二維陣列去重合並將相同數量累加

php 二維陣列去重合並將相同數量累加

$arr = array(
    array(
       'user_id' => 100,
       'goods_id' => 10,
       'number' => 1,
    ),  
    array(
       'user_id' => 102,
       'goods_id' => 10,
       'number' => 1,
    ),  
    array(
       'user_id' => 102,
       'goods_id' => 10,
       'number' => 1,
    ),  
    array(
       'user_id' => 102,
       'goods_id' => 10,
       'number' => 1,
    ),  
);
 
$result = array();
 
foreach($arr as $val){
    $key = $val['user_id'].'_'.$val['goods_id'];
    if(!isset($result[$key])){
        $result[$key] = $val;
    }else{
        $result[$key]['number'] += $val['number'];
    }
}
 
echo '<pre>';
print_r(array_values($result));
echo '</pre>';

執行結果:

Array
(
    [0] => Array
        (
            [user_id] => 100
            [goods_id] => 10
            [number] => 1
        )
 
    [1] => Array
        (
            [user_id] => 102
            [goods_id] => 10
            [number] => 3
        )
 
)


相關推薦

php 陣列重合相同數量累加

$arr = array( array( 'user_id' => 100, 'goods_id' => 10, 'number' => 1, ), array( 'use

PHP 陣列重合

以為其中一維陣列相同欄位合併,並且total欄位相加 $arr=array(5) { [0]=> array(3) { ["id"]=> string(1) "1" ["total"]=> string(1) "1" ["name

php陣列

php二維陣列去重 前言:php一維陣列去重很簡單,直接array_unique($arr)即可,但是二維陣列去重就得自己去寫了 二維陣列去重方法: /* * 二維陣列去重 * 注意:二維陣列中的元素個數必須一致,且鍵值也得一致,否則無意義 * @param array $arr * @re

PHP陣列重的方法(保留各個鍵值的同時去除重複的項)-- 陣列的唯一性

對於如下二維陣列,要求對其進行去重: $arr = array( '0'=>array( 'name'=>'james', 'age'=>30,

php陣列重即去掉重複鍵值的子元素

案例1: Array (     [0] => Array         (             [0] => 2             [1] => 1505622764         )     [1] => Array      

php陣列刪除某個鍵值相同陣列

<?php $arr = array( '0'=>array( 'name'=>'james', 'age'=>30, ),

php陣列根據某個欄位

php的二維陣列根據某個欄位去重,在這預設為二維陣列的結構是一樣的,現在根據二維數組裡的id欄位去重,把id相同的重複的元素去掉 /** * 二維陣列根據某個欄位去重 * @param array $array 二維陣列 * @para array 去重後的陣列 */ private funct

php 陣列根據某欄位

有時候,查詢出來的陣列會有好多重複的資料,要想去除這些資料,有以下幾種方法: 第一種:二維陣列中直接去掉重複的鍵 <?php function array_unique_fb($array2D){ foreach ($array2D as $v){ $v=joi

PHP 陣列的合併與

思路:建一個新陣列,把陣列的值設定為鍵,儲存到新陣列,然後判斷後面的是否有相同的值,有去掉(unsettle()),沒有則存入新陣列。因為儲存的新陣列是以九陣列值為鍵的新陣列,所以最後重置一下新陣列的

JavaScript 一陣列陣列重方法

1.使用ES6語法 set方法陣列去重:: a=[1,2,3,4,1,2,3,4]; [...new Set(a)]; //[1, 2, 3, 4] 2.一維陣列去重方法 function unique1(array){ var n = []; //一個新的臨時陣列

php陣列指定某元素後面的值是和前面的值相加起來的

描述不清,直接上程式碼 $data = array( array('time'=>'2018-10-15','money'=>1,'count'=>5), array('time'=>'2018-10-16','money'=>2,'count'=>4),

php 陣列自定義排序

有時候需要對一個二維陣列進行排序,自定義對應的排序規則,比如對一個班級裡面的同學,先按身高降序排序,身高相同的,再按體重降序排序。。。 程式碼: <?php $array = [ ["id" => "1", "name" => "a", "age" => "19",]

php陣列陣列

1.轉陣列 $hb=Db::table('sl_details')->where(['hid'=>$id])->where('pid','<>',0)->field('pid,moeny')->select();

PHP陣列的快速排序

/** * 二維陣列的快速排序(推薦) * @param Array $data 二維陣列 * @param string $field 所要排序的欄位 * @param string $order 正序或倒序 * @param boolean $isabs 是否比較絕對值 */ f

PHP 陣列 指定 value 作為 key || 陣列 取出指定 元素組成新陣列

// 基礎陣列 $array = [ array(5) { [0]=> array(2) { ["id"]=> string(1) "1" ["name"]=> string(21) "網站炒雞管理員"

php陣列重新排序

Array ( Array ('id' => 3, 'username' => 'alex ','parentname'=> 'john'          ,'proname' => 'tttt' 'num'=> 1 ,  'userid' =

PHP 陣列按鍵值排序

PHP 中 array_multisort() 可以用來一次對多個數組進行排序,或者根據某一維或多維對多維陣列進行排序。關聯鍵名保持不變,但數字鍵名會被重新索引。輸入陣列被當成一個表的列並以行來排序,第一個陣列是要排序的主要陣列。陣列中的行(值)比較為相同的話就按照下一個輸入

Javascript 陣列

[[a,1],[b,2],[a,2]] 去除[a,2] 輸入一串url 和一個待去除引數,輸出篩選後的結果,第二個引數預設的話,去除重複部分。 stripUrlParams('www.codewars.com?a=1&b=2&a=

PHP 陣列排重

      /**      * 陣列二維排重 $arr 陣列      *   $key 排重的值      */  

php陣列按某個鍵值排序(突然用到以往知識,算是臨時補充筆記吧)

print_r($arr);排序後Array ( [0] => Array ( [name] => 6 [age] => 21 ) [1] => Array (