怎么把一维数组中键相同的值相加

大部晴朗-满 2011-04-20 05:07:21
例如:
Array
(
[25] => 2
[29] => 2
[15] => 1
[19] => 1
[1] => 2
[5] => 2
[29] => 2

)

这样的数组把键相同的值相加
...全文
384 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
happy664618843 2011-04-20
  • 打赏
  • 举报
回复
$i=0;
foreach($arr as $key=>$value)
if(is_array($(value)))
{
var_dump($value[$i]);
$i++;
}
xuzuning 2011-04-20
  • 打赏
  • 举报
回复
$ar = array(25, 2, 29, 2, 15, 1, 19, 1, 19, 2, 1, 2);

$r = array();
foreach($ar as $k=>$v)
$r[intval($k/2)*2] += $v;

print_r($r);

$r = array();
foreach($ar as $k=>$v)
$r[intval($k/2)*2+1] += $v;

print_r($r);

Array
(
[0] => 27
[2] => 31
[4] => 16
[6] => 20
[8] => 21
[10] => 3
)
Array
(
[1] => 27
[3] => 31
[5] => 16
[7] => 20
[9] => 21
[11] => 3
)

lazyboy_wu 2011-04-20
  • 打赏
  • 举报
回复


<?php

$arr = Array(
0 => 25,
1 => 2,
2 => 29,
3 => 2,
4 => 15,
5 => 1,
6 => 19,
7 => 1,
8 => 19,
9 => 2,
10 => 1,
11 => 2
);

$len = count($arr);
$ret = array();
for($i = 0; $i < $len; $i++) {
$k = $arr[$i];
$v = $arr[++$i];
if(isset($ret[$k])) {
$ret[$k] += $v;
} else {
$ret[$k] = $v;
}
}

var_dump($ret);



输出

array(5) {
[25]=>
int(2)
[29]=>
int(2)
[15]=>
int(1)
[19]=>
int(3)
[1]=>
int(2)
}
kalixi 2011-04-20
  • 打赏
  • 举报
回复
<?php
// 创建一个简单的数组
$a = array(1, 2, 3, 4, 5);
foreach ($a as $key=>$val)
{
if(($key/2)==0)
{
$a[$key]=$a[$key]+$a[($key+1)];
}
}

var_dump($a);

?>

如果 $a 中的key不是这样有序的,就不能怎么干了
大部晴朗-满 2011-04-20
  • 打赏
  • 举报
回复
Array
(
[0] => 25
[1] => 2
[2] => 29
[3] => 2
[4] => 15
[5] => 1
[6] => 19
[7] => 1
[8] => 19
[9] => 2
[10] => 1
[11] => 2
)
那这个数组中键名是偶数的值相同的话,下面紧邻着的那个奇数的值就相加
乌镇程序员 2011-04-20
  • 打赏
  • 举报
回复
会出现这种情况吗?键名或索引号不能重复!

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧