ホームページ > バックエンド開発 > PHPチュートリアル > 将二维数组从新按条件重新生成新数组

将二维数组从新按条件重新生成新数组

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
リリース: 2016-06-13 11:08:11
オリジナル
1279 人が閲覧しました

将二维数组重新按条件重新生成新数组
现有数组
$arr=array(
'0' => array ( 'userId' => 1,'date' => '2011-4-11', 'num' => '2' ),   
'1' => array ( 'userId' => 2,'date' => '2011-4-12', 'num' => '3' ),   
'2' => array ( 'userId' => 6,'date' => '2011-4-13', 'num' => '4')  
'3' => array ( 'userId' => 3,'date' => '2011-4-13', 'num' => '5')   
'4' => array ( 'userId' => 1,'date' => '2011-4-11', 'num' => '7')
'5' => array ( 'userId' => 1,'date' => '2011-4-12', 'num' => '7')      
);
如何将这个数组重新计算生成为
相同userid和data的合并求num的和
生成结果为
$arr=array(
'0' => array ( 'userId' => 1,'date' => '2011-4-11', 'num' => '9' ),   
'1' => array ( 'userId' => 2,'date' => '2011-4-12', 'num' => '3' ),   
'2' => array ( 'userId' => 6,'date' => '2011-4-13', 'num' => '4')  
'3' => array ( 'userId' => 3,'date' => '2011-4-13', 'num' => '5')   
'4' => array ( 'userId' => 1,'date' => '2011-4-12', 'num' => '7')      
);
------解决方案--------------------
$arr=array(
'0' => array ( 'userId' => 1,'date' => '2011-4-11', 'num' => '2' ),   
'1' => array ( 'userId' => 2,'date' => '2011-4-12', 'num' => '3' ),   
'2' => array ( 'userId' => 6,'date' => '2011-4-13', 'num' => '4'),   
'3' => array ( 'userId' => 3,'date' => '2011-4-13', 'num' => '5'),   
'4' => array ( 'userId' => 1,'date' => '2011-4-11', 'num' => '7'),
'5' => array ( 'userId' => 1,'date' => '2011-4-12', 'num' => '7'),   
);
foreach($arr as $v) {
  if(! $r[$v['userId'].'_'.$v['date']])
    $r[$v['userId'].'_'.$v['date']] = $v;
  else
    $r[$v['userId'].'_'.$v['date']]['num'] += $v['num'];
}
print_r(array_values($r));

Array
(
    [0] => Array
        (
            [userId] => 1
            [date] => 2011-4-11
            [num] => 9
        )

    [1] => Array
        (
            [userId] => 2
            [date] => 2011-4-12

関連ラベル:
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート