多维数组中相同元素相加问题
本帖最后由 myths621 于 2013-03-19 12:04:11 编辑
首次发帖,请假高手
我从redis中取出五维数组需要处理相加,如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | <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 />
|
Copier après la connexion
希望数据处理后,相同date前提下,area里相同的key所对应的click和traffic值相加,即0和1这两个大数组,date为201001的,area中12所对应的click和traffic处理后应该是12和50,8对应的是6和60,其他类推,求遍历或其他能处理成功的方法,感激不尽~!
多维数组
------解决方案--------------------最后结果是怎么样的? 贴一下。
------解决方案--------------------1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | $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 ">" ;
|
Copier après la connexion
结果如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <br>
Array<br>
(<br>
[0] => Array<br>
(<br>
[0] => Array<br>
(<br>
[date] => 201201<br>
[area] => Array<br>
(<br>
[12] => Array<br>
(<br>
[click] => 12 <div class="clear">
</div>
|
Copier après la connexion
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn