>  기사  >  백엔드 개발  >  如何把键值相同的合并,并且把键名的值相加,然后按照键名的值的大小形成一个新的数组,请高人指点。

如何把键值相同的合并,并且把键名的值相加,然后按照键名的值的大小形成一个新的数组,请高人指点。

WBOY
WBOY원래의
2016-06-23 14:24:561230검색

Array ( [615] => 赣州 [510] => 南昌 [485] => 九江 [375] => 南昌 [350] => 赣州 [295] => 九江 [280] => 九江 )
如何把键值相同的合并,并且把键名的值相加,然后按照键名的值的大小形成一个新的数组,请高人指点。


回复讨论(解决方案)

error_reporting(E_ALL ^ E_NOTICE);$a = array ( 615 => '赣州', 510 => '南昌', 485 => '九江', 375 => '南昌', 350 => '赣州', 295 => '九江', 280 => '九江' );foreach($a as $v=>$k) {  $b[$k] += $v;}$b = array_flip($b);print_r($b);
Array
(
    [965] => 赣州
    [885] => 南昌
    [1060] => 九江
)

不写了,给你个思路
原数组A
array_value 或 arra_unique 提取值作为数组B
循环
原数组 array_intersect 和 B 的每一项求交集 C[i]
array_keys 求 C[i]的键,顺便sum C[i]
用C[i]和B对应生成数组,你在循环内做对应不难,排序输出

手快,有点误

原数组A
array_value 或 arra_unique 提取A的值作为数组B
循环
原数组 array_intersect 和 B 的每一项求交集 C[i]
array_keys 求 C[i]的键,顺便sum D[i]
用D[i]和B对应生成数组,你在循环内做对应不难,排序输出 

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.