首頁 >後端開發 >php教程 >如何把这两个函数相同的键值相加形成新的数组。

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

WBOY
WBOY原創
2016-06-23 14:25:06985瀏覽

$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=这个是记录地区的。
这样子可以确保不会出现重名的情况,但是不知道这样子能不能计算相加相同的。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn