php两个二维数组根据某个字段相同重新组成新的数组

本文介绍了一种在PHP中处理二维数组的方法,通过遍历并比较数组中的'days'字段,将相同日期的'IOS'和'Android'字段进行数值叠加,实现了数据的有效整合。

这里,我要实现的是两个二维数组,根据某一个字段相同,将其他的数据相加

$data1 = array( 
		   0=>array( "days"=>"2018-10-11","IOS"=>"3", "Android"=>"92"),
		   1=>array( "days"=>"2018-10-10", "IOS"=>"103" ,"Android"=>"569" ),
		   2=>array( "days"=>"2018-10-09" ,"IOS"=>"234", "Android"=>"568" ) ,
		   3=>array( "days"=> "2018-10-08" ,"IOS"=> "222" ,"Android"=> "548" ) ,
		   4=>array( "days"=> "2018-10-07" ,"IOS"=> "230" ,"Android"=> "736" ) ,
		   5=>array( "days"=> "2018-10-06" ,"IOS"=> "656", "Android"=> "885" ) ,
		   6=>array( "days"=> "2018-10-05" ,"IOS"=> "333" ,"Android"=> "894" ) ,
	);
$data2 = array( 
		   0=>array("days"=> "2018-10-10","IOS"=> "1","Android"=> "2") ,
		   1=>array("days"=> "2018-10-09" ,"IOS"=> "5" ,"Android"=> "5" ) ,
		   2=>array("days"=> "2018-10-08" ,"IOS"=> "2" ,"Android"=> "4" ) ,
		   3=>array("days"=> "2018-10-07" ,"IOS"=> "2" ,"Android"=> "10" ) ,
		   4=>array("days"=> "2018-10-06" ,"IOS"=> "8" ,"Android"=> "14" ) ,
		   5=>array("days"=> "2018-10-05" ,"IOS"=> "2" ,"Android"=> "16" ) ,
	);
$newdata = [];
foreach($data as $k=>$v){
    if(!isset($newdata[$v['days']])){
        $newdata[$v['days']] = $v;
    }else{
        $newdata[$v['days']]['IOS'] += $v['IOS'];
        $newdata[$v['days']]['Android'] += $v['Android'];
    }
}
Array
(
    [0] => Array
        (
            [days] => 2018-10-11
            [IOS] => 3
            [Android] => 92
        )
 
    [1] => Array
        (
            [days] => 2018-10-10
            [IOS] => 104
            [Android] => 571
        )
 
    [2] => Array
        (
            [days] => 2018-10-09
            [IOS] => 239
            [Android] => 573
        )
 
    [3] => Array
        (
            [days] => 2018-10-08
            [IOS] => 224
            [Android] => 552
        )
 
    [4] => Array
        (
            [days] => 2018-10-07
            [IOS] => 232
            [Android] => 746
        )
 
    [5] => Array
        (
            [days] => 2018-10-06
            [IOS] => 664
            [Android] => 899
        )
 
    [6] => Array
        (
            [days] => 2018-10-05
            [IOS] => 335
            [Android] => 910
        )
 
)
 foreach ($balancepartake as $k=>$v) {
                        if(!isset($arrs['num'])){
                                $arrs['num'] = $v['num'];
                        }else{
                                $arrs['num'] +=$v['num'];
                        }
                }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值