ホームページ > バックエンド開発 > PHPチュートリアル > 条件に基づいて 2 次元配列を新しい配列に再生成します

条件に基づいて 2 次元配列を新しい配列に再生成します

WBOY
リリース: 2016-06-13 12:59:41
オリジナル
986 人が閲覧しました

条件に従って 2 次元配列を新しい配列に再生成します
既存の配列
$arr=array(
'0' => 配列 ( 'userId' => 1,'date' => '2011-4-11', 'num' => '2' )、
'1' => 配列 ( 'userId' => 2,'date' => '2011-4-12', 'num' => '3' )、
'2' => 配列 ( 'userId' => 6,'date' => '2011-4-13', 'num' => '4')
'3' => 配列 ( 'userId' => 3,'date' => '2011-4-13', 'num' => '5')
'4' => 配列 ( 'userId' => 1,'date' => '2011-4-11', 'num' => '7')
'5' => 配列 ( 'userId' => 1,'date' => '2011-4-12', 'num' => '7')
);
この配列を
に再計算する方法 同じユーザー ID とデータを組み合わせて、num
の合計を求めます 生成された結果は
です $arr=array(
'0' => 配列 ( 'userId' => 1,'date' => '2011-4-11', 'num' => '9' )、
'1' => 配列 ( 'userId' => 2,'date' => '2011-4-12', 'num' => '3' )、
'2' => 配列 ( 'userId' => 6,'date' => '2011-4-13', 'num' => '4')
'3' => 配列 ( 'userId' => 3,'date' => '2011-4-13', 'num' => '5')
'4' => 配列 ( 'userId' => 1,'date' => '2011-4-12', 'num' => '7')
);
------解決策---------
$arr=array(
'0' => 配列 ( 'userId' => 1,'date' => '2011-4-11', 'num' => '2' )、
'1' => 配列 ( 'userId' => 2,'date' => '2011-4-12', 'num' => '3' )、
'2' => 配列 ( 'userId' => 6,'date' => '2011-4-13', 'num' => '4')、
'3' => 配列 ( 'userId' => 3,'date' => '2011-4-13', 'num' => '5')、
'4' => 配列 ( 'userId' => 1,'date' => '2011-4-11', 'num' => '7')、
'5' => 配列 ( 'userId' => 1,'date' => '2011-4-12', 'num' => '7')、
);
foreach($arr as $v) {
if(! $r[$v['userId'].'_'.$v['date']])
$r[$v['userId'].'_'.$v['date']] = $v;
それ以外
$r[$v['userId'].'_'.$v['date']]['num'] += $v['num'];
}
print_r(array_values($r));

配列
(
[0] => 配列
(
[userId] => 1
[日付] = & gt; 2011-4-11
[num] => )

[1] => 配列
(
[userid] => [日付] = & gt; 2011-4-12

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