ホームページ  >  記事  >  バックエンド開発  >  多次元配列内の同一要素の追加

多次元配列内の同一要素の追加

WBOY
WBOYオリジナル
2016-06-23 14:03:14795ブラウズ

初投稿、放置専門家です
Redis から 5 次元配列を取り出して、以下のように追加処理が必要でした
うわー

データ処理後、同じ日付という前提で、クリック数とトラフィック数が表示されることを願っていますエリア内の同じキーに対応する値が追加されます。つまり、0 と 1 の 2 つの大きな配列があり、日付は 201001 です。処理後、エリア内の 12 に対応するクリックとトラフィックは 12 になるはずです。と 50、6 と 60 に対応する 8 など、成功する可能性のあるトラバースまたは他の処理方法を探してください。


ディスカッションへの返信(解決策)

最終的な結果はどうなりましたか?投稿してください。

結果は以下の通りです、ご清聴ありがとうございました

$a = array(			0 => array(			0=> array(							"date" => "201201",				"area"=> array(					12 => array(						click => "3",						traffic => "30"					)					)			),				1=> array(							"date" => "201202",				"area"=> array(					12 => array(						click => "8",						traffic => "40"					),					8=> array(						click => "5",						traffic => "50"					)				)			)						),		1 => array(					0=> array(							"date" => "201201",				"area"=> array(					12 => array(						click => "9",						traffic => "20"					),					8=> array(						click => "6",						traffic => "60"					)				)				),						1=> array(							"date" => "201202",				"area" => NULL			)		),			);

$a = array(             0 => array(             0=> array(                             "date" => "201201",                "area"=> array(                    12 => array(                        click => "12",                        traffic => "50"                    ) ,					8=> array(                        click => "6",                        traffic => "60"                    )                   )            ),                 1=> array(                             "date" => "201202",                "area"=> array(                    12 => array(                        click => "8",                        traffic => "40"                    ),                    8=> array(                        click => "5",                        traffic => "50"                    )                )            )                         )              );


結果は以下の通りです:
$t = array();foreach ($a as $k=>$v){	foreach ($v as $k1=>$v1)	{		$t[0][$k1]['date'] = $v1['date'];		foreach ($v1['area'] as $k2=>$v2)		{			$t[0][$k1]['area'][$k2]['click'] += $v2['click'];			$t[0][$k1]['area'][$k2]['traffic'] += $v2['traffic'];		}	}}echo "<pre class="brush:php;toolbar:false">";print_r($t);echo "<pre class="brush:php;toolbar:false">";

正解は4階さんに感謝です

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。