ホームページ >バックエンド開発 >PHPチュートリアル >多次元配列内の同一要素の追加
初投稿、放置専門家です
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階さんに感謝です