当前位置:首页 » 编程语言 » php数组值相加

php数组值相加

发布时间: 2022-09-18 06:26:43

php数组函数序列之array_sum() - 计算数组元素值之和

array_sum()定义和用法
array_sum()
函数返回数组中所有值的总和。
如果所有值都是整数,则返回一个整数值。如果其中有一个或多个值是浮点数,则返回浮点数。
PHP
4.2.1
之前的版本修改了传入的数组本身,将其中的字符串值转换成数值(大多数情况下都转换成了零,根据具体制而定)。
语法
array_sum(array)
参数
描述
array
必需。规定输入的数组。
例子1
复制代码
代码如下:
<?php
$a=array(0=>"5",1=>"15",2=>"25");
echo
array_sum($a);
?>
输出:
45
例子2
复制代码
代码如下:
<?php
$a=array(0=>5,1=>15,2=>25);
echo
array_sum($a);
?>
输出:
45
例子3
复制代码
代码如下:
<?php
$a=array(0=>5,1=>15.5,2=>25);
echo
array_sum($a);
?>
输出:
45.5
例子4
复制代码
代码如下:
<?php
$a=array(0=>5,1=>"15s",2=>25);
echo
array_sum($a);
?>
输出:
45
例子5
复制代码
代码如下:
<?php
$a=array(0=>5,1=>"s15s",2=>25);
echo
array_sum($a);
?>
输出:
30

Ⅱ php数组值如何正确相加

//摘自php5手册
<?php
$a = array(2, 4, 6, 8);
echo "sum(a) = " . array_sum($a) . "\n";

$b = array("a" => 1.2, "b" => 2.3, "c" => 3.4);
echo "sum(b) = " . array_sum($b) . "\n";
?>

Ⅲ php里面怎么对数组中所有值求和

一维就用array_sum 二维就先取出要求和的键

Ⅳ 如何统计php数组值的和

首先,对于简单的数组,可以使用array_sum函数来实现,函数的格式如下:

number array_sum ( array $array )

函数例子:

<?php
$a=array(2,4,6,8);
echo"sum(a)=".array_sum($a)." ";

$b=array("a"=>1.2,"b"=>2.3,"c"=>3.4);
echo"sum(b)=".array_sum($b)." ";
?>

以上例程会输出:

sum(a) = 20
sum(b) = 6.9

此外,对于复杂格式的数组,可以自己使用foreach结构计算和,例如:

<?php
$a=array(1,2,3,4);
$s=0;
foreach($aas$v)$s+=$v;
echo"sum=$s";
?>

Ⅳ 求问php两个二维数组中每个元素的相加

<?php
$array_1=array(array(0,1,2),array(3,4,5),array(6,7,8));
$array_2=array(array(0,1,2),array(3,4,5),array(6,7,8));
foreach($array_1as$k1=>$v1){
foreach($v1as$k2=>$v2){
$array_1[$k1][$k2]+=$array_2[$k1][$k2];
}
}
echo"<pre>";
print_r($array_1);
echo"</pre>";
?>

运行结果

Array
(
[0] => Array
(
[0] => 0
[1] => 2
[2] => 4
)

[1] => Array
(
[0] => 6
[1] => 8
[2] => 10
)

[2] => Array
(
[0] => 12
[1] => 14
[2] => 16
)

)


望采纳 Thx

Ⅵ PHP 这样的数组如何将键相同的值相加

//给你写段参考代码吧:
$arr1=['a'=>20,'b'=>30,'c'=>40];
$arr2=['a'=>20,'b'=>30,'ggg'=>40];
$arr3=['a'=>20,'ddd'=>30,'c'=>40];
foreach($arr1as$key=>$val){
if(isset($arr2[$key])){
$arr1[$key]+=$arr2[$key];
}
if(isset($arr3[$key])){
$arr1[$key]+=$arr3[$key];
}
}
var_mp($arr1);

Ⅶ PHP数组计算 如下数组$arr,求方法随机对数组的值相加,求和为指定值:如(690),输出:405+180+105=690

<?php

$arr=[1,2,3,4,5,6,7,8,9];

/**
*根据某个值对数组中的元素进行分组
*/
functiongetGroupBySum($arr,$sum){
$len=count($arr);
$result=[];
//for1
for($i=0;$i<$len;$i++){
//for2
for($j=1;$j<$len-$i;$j++){
$tmp=array_slice($arr,$i+1,$j);
array_unshift($tmp,$arr[$i]);
if(array_sum($tmp)==$sum){
$result[]=$tmp;
}
}
//for3
for($k=$i+1;$k<$len;$k++){
if(($arr[$i]+$arr[$k])==$sum){
$result[]=[$arr[$i],$arr[$k]];
}
}
}

return$result;
}

print_r(getGroupBySum($arr,10));

打印结果:

Array
(
[0]=>Array
(
[0]=>1
[1]=>2
[2]=>3
[3]=>4
)

[1]=>Array
(
[0]=>1
[1]=>9
)

[2]=>Array
(
[0]=>2
[1]=>8
)

[3]=>Array
(
[0]=>3
[1]=>7
)

[4]=>Array
(
[0]=>4
[1]=>6
)

)

函数getGroupBySum的算法解释:

我只能解释到这里了,剩下的只可意会。

---------------------------2017/2/16/19:45--------------

下班回去的途中,仔细思考了一下,我上面的函数还没有找到 1、2、7与1、3、6等等,所以它是错的。

我对题目的理解是:数组中任意个元素的和等于某个值,把这些元素组合找出来。

如果没有理解错题意的话,我写不出来这种算法,组合太多了。

Ⅷ php如何将数组遍历出来的结果相加

方法1,累加
<?php
$arr=array(1,2,3,4);
$sum=0;//设变量
foreach($arr as $value){
echo $value.'<br>';
$sum+=$value;//累加
}
echo $sum;//显示

方法2,直接求
<?php
$arr=array(1,2,3,4);
echo array_sum($arr);

Ⅸ php判断数组重复,并把重复的数据相加

遍历一次就搞定了

既然你要把单号相同的加起来,就可以认为单号是唯一的,所以单号可以做key

$sourceArr=array();//这里就是你原始数据的数组
$newArr=array();//这里是相加后处理过的数组,以单号为key
foreach($sourceArras$v){
if(array_key_exists($v['id'],$newArr)){
$newArr[$v['id']]['fund']+=$v['fund'];
}else{
$newArr[$v['id']]=$v;
}
}

大概就是这么个意思,不过交易类型、账务类型你可能还要再处理下。

如果最后想得到一个下标从0开始的,非关联数组,再用array_values()函数处理下就OK了

Ⅹ PHP 多个数组合并 重新生成新的数组并按要求值相加

$aa='[{"id": 0, "num": "2", "name": "产品1", "price": "37", "amount": 74, "zdamount": 100}, {"id": 1, "num": "2", "name": "产品2", "price": "37", "amount": 74, "zdamount": 100}]';
$bb='[{"id": 0, "num": "3", "name": "产品1", "price": "37", "amount": 90, "zdamount": 110}, {"id": 1, "num": "5", "name": "产品2", "price": "37", "amount": 150, "zdamount": 180}]';
$cc='[{"id": 2, "num": "3", "name": "产品3", "price": "37", "amount": 90, "zdamount": 110}, {"id": 1, "num": "5", "name": "产品2", "price": "37", "amount": 150, "zdamount": 180}]';
$j_a = json_decode($aa,1);
$j_b = json_decode($bb,1);
$j_c = json_decode($cc,1);
$arr_list = [$j_a,$j_b,$j_c];//把数组扔进大数组,这样可以随意增加个数
$result = [];
foreach ($arr_list as $k=>$v) {//第一次循环,把原数组取出
foreach ($v as $key => $value) {//第二次循环,正式取出数据
if (isset($result[$value['id']])) {//如果有此id,则进行累加操作
$result[$value['id']]['num'] += $value['num'];
$result[$value['id']]['amount'] += $value['amount'];
$result[$value['id']]['zdamount'] += $value['zdamount'];
} else {//没有此id则进行赋值操作
$result[$value['id']]['id'] = $value['id'];
$result[$value['id']]['price'] = $value['price'];
$result[$value['id']]['name'] = $value['name'];
$result[$value['id']]['num'] = $value['num'];
$result[$value['id']]['amount'] = $value['amount'];
$result[$value['id']]['zdamount'] = $value['zdamount'];
}
}
}
echo json_encode($result,320);//输出结果,如果需要序列化键值,可以使用array_values($result)

热点内容
买钓箱要哪些配置就够了 发布:2025-01-11 20:24:23 浏览:509
防脚本取色 发布:2025-01-11 20:15:17 浏览:637
为什么庄周活动安卓没开始 发布:2025-01-11 20:14:23 浏览:460
我的世界花雨庭国际服服务器地址 发布:2025-01-11 20:13:27 浏览:718
c数据导入数据库 发布:2025-01-11 20:07:55 浏览:828
可以上传片 发布:2025-01-11 20:07:55 浏览:792
outlook服务器邮件怎么找 发布:2025-01-11 20:06:12 浏览:94
javac编译jar 发布:2025-01-11 20:06:11 浏览:483
电脑服务器小功率 发布:2025-01-11 20:02:02 浏览:832
唱吧上传自己的歌 发布:2025-01-11 19:57:35 浏览:661