多次元配列に同じ要素を追加する問題
この投稿は、2013-03-19 12:04:11 に myths621 によって最終編集されました
初投稿、休暇申請の達人
次のように、redis から 5 次元配列を取り出し、加算処理を行う必要があります
<br />
$a = array(<br />
<br />
0 => array(<br />
<br />
0=> array(<br />
<br />
"date" => "201201",<br />
"area"=> array(<br />
12 => array(<br />
click => "3",<br />
traffic => "30"<br />
) <br />
)<br />
), <br />
<br />
1=> array(<br />
<br />
"date" => "201202",<br />
"area"=> array(<br />
12 => array(<br />
click => "8",<br />
traffic => "40"<br />
),<br />
8=> array(<br />
click => "5",<br />
traffic => "50"<br />
)<br />
)<br />
) <br />
<br />
),<br />
<br />
1 => array(<br />
<br />
0=> array(<br />
<br />
"date" => "201201",<br />
"area"=> array(<br />
12 => array(<br />
click => "9",<br />
traffic => "20"<br />
),<br />
8=> array(<br />
click => "6",<br />
traffic => "60"<br />
)<br />
)<br />
),<br />
<br />
1=> array(<br />
<br />
"date" => "201202",<br />
"area" => NULL<br />
)<br />
),<br />
<br />
<br />
);<br />
<br />
ログイン後にコピー
データ処理後、同じ日付であることを前提として、エリア内の同じキーに対応するクリック値とトラフィック値、つまり 0 と 1 の 2 つの大きな配列が追加され、日付が 201001 であることが望まれます。 、エリア内の 12 に対応するクリック値とトラフィック値が処理されます。最後の値は 12 と 50、8 は 6 と 60 に対応し、類推して、成功を処理できるトラバーサルまたはその他の方法を探しています。どうも~!
多次元配列
-----解決策--------------------------------最終的な結果は何ですか?投稿してください。
------解決策---------$t = array();<br />
foreach ($a as $k=>$v)<br />
{<br />
foreach ($v as $k1=>$v1)<br />
{<br />
$t[0][$k1]['date'] = $v1['date'];<br />
foreach ($v1['area'] as $k2=>$v2)<br />
{<br />
$t[0][$k1]['area'][$k2]['click'] += $v2['click'];<br />
$t[0][$k1]['area'][$k2]['traffic'] += $v2['traffic'];<br />
}<br />
}<br />
}<br />
echo "<pre class="brush:php;toolbar:false">";<br />
print_r($t);<br />
echo "<pre class="brush:php;toolbar:false">";
ログイン後にコピー
結果は次のとおりです:
<br>
配列<br>
(<br>
[0] => 配列<br>
(<br>
[0] => 配列<br>
(<br>
以来
以来
(<br>
[12] => 配列<br>
(<br>
[クリック] => 12 <br><br>
ログイン後にコピー