首页 > 后端开发 > php教程 > 如何把这两个函数相同的键值相加形成新的数组。

如何把这两个函数相同的键值相加形成新的数组。

WBOY
发布: 2016-06-23 14:25:06
原创
1009 人浏览过

$t1=Array ( [0] => 1320 [1] => 990 [2] => 895 [3] => 790 [4] => 775 [5] => 745 [6] => 740 [7] => 680 [8] => 665 [9] => 535 )
$t2=Array ( [0] => 南昌 [1] => 赣州 [2] => 吉安 [3] => 九江 [4] => 南昌 [5] => 九江 [6] => 萍乡 [7] => 省外 [8] => 南昌 [9] => 九江 ) 

$t1和$t2的长度一样,且他们的值都是相互对应的,
比如
[0] => 1320
[0] => 南昌
代表南昌的数字是1320,我现在想把里面的$t2里面的如果相同的分别相加。

比如,里面的南昌 
[0] => 1320 
[0] => 南昌
---------------------
[4] => 775
[4] => 南昌
-----------------
[8] => 665
 [8] => 南昌 
怎么把这三个数字相加。

形成一个下面的数组:
$t3=Array ( [2760] => 南昌 [990] => 赣州 [895] => 吉安 [2070] => 九江 [740] => 萍乡 [680] => 省外 ) ?
如果用array_combine函数的话,请考虑一下键名相同被忽略的情况。


回复讨论(解决方案)

$t1 = array ( 0 => 1320, 1 => 990, 2 => 895, 3 => 790, 4 => 775, 5 => 745, 6 => 740, 7 => 680, 8 => 665, 9 => 535 );$t2 = array ( 0 => '南昌', 1 => '赣州', 2 => '吉安', 3 => '九江', 4 => '南昌', 5 => '九江', 6 => '萍乡', 7 => '省外', 8 => '南昌', 9 => '九江' ); foreach($t2 as $i=>$k) @$t3[$k] += $t1[$i];$t3 = array_flip($t3);print_r($t3);
登录后复制
登录后复制
Array ( [2760] => 南昌 [990] => 赣州 [895] => 吉安 [2070] => 九江 [740] => 萍乡 [680] => 省外 )

$t1 = array ( 0 => 1320, 1 => 990, 2 => 895, 3 => 790, 4 => 775, 5 => 745, 6 => 740, 7 => 680, 8 => 665, 9 => 535 );$t2 = array ( 0 => '南昌', 1 => '赣州', 2 => '吉安', 3 => '九江', 4 => '南昌', 5 => '九江', 6 => '萍乡', 7 => '省外', 8 => '南昌', 9 => '九江' ); foreach($t2 as $i=>$k) @$t3[$k] += $t1[$i];$t3 = array_flip($t3);print_r($t3);
登录后复制
登录后复制
Array ( [2760] => 南昌 [990] => 赣州 [895] => 吉安 [2070] => 九江 [740] => 萍乡 [680] => 省外 )

如果出现键名相同的情况?怎么办? 比如,
Array ( [990] => 南昌 [990] => 赣州 [895] => 吉安 [2070] => 九江 [740] => 萍乡 [680] => 省外 )

这样子的情况,就会被覆盖一个,怎么办呢?

那没办法,你的方案先天不足!

那没办法,你的方案先天不足!
$t1=Array ( [0] => 1320 [1] => 990 [2] => 895 [3] => 790 [4] => 775 [5] => 745 [6] => 740 [7] => 680 [8] => 665 [9] => 535 )
$t2=Array ( [0] => 南昌 [1] => 赣州 [2] => 吉安 [3] => 九江 [4] => 南昌 [5] => 九江 [6] => 萍乡 [7] => 省外 [8] => 南昌 [9] => 九江 ) 

那我想计算出 t2,里面的不相同的数值分别有多少,有什么办法吗?


那没办法,你的方案先天不足!
$t1=Array ( [0] => 1320 [1] => 990 [2] => 895 [3] => 790 [4] => 775 [5] => 745 [6] => 740 [7] => 680 [8] => 665 [9] => 535 )
$t2=Array ( [0] => 南昌 [1] => 赣州 [2] => 吉安 [3] => 九江 [4] => 南昌 [5] => 九江 [6] => 萍乡 [7] => 省外 [8] => 南昌 [9] => 九江 ) 

那我想计算出 t2,里面的不相同的数值分别有多少,有什么办法吗?

可以做一个$t11= 这个是记录值的,
$t22=这个是记录地区的。
这样子可以确保不会出现重名的情况,但是不知道这样子能不能计算相加相同的。

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板