Home > Backend Development > PHP Tutorial > 如何把这两个函数相同的键值相加形成新的数组。

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

WBOY
Release: 2016-06-23 14:25:06
Original
982 people have browsed it

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

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template