php數組值相加
Ⅰ 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)