A. 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
B. 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等等,所以它是錯的。
我對題目的理解是:數組中任意個元素的和等於某個值,把這些元素組合找出來。
如果沒有理解錯題意的話,我寫不出來這種演算法,組合太多了。
C. php中數組相加除六怎麼打
//是將每個數組元素相加嗎?
$ary=[1,2,3,4,5];
$number=array_sum($ary)/6;
echo$number;
D. php中定義索引數組a,求數組的和、平均值
和:array_sum($a);
平均值:array_sum($a)/count($a);
E. php兩個數組相加,依據數組中某一個元素的值,如果相同,就加入該列中,怎麼寫
//暫時認為你的第一個數組為$a,第二個數組為$b,利用PHP的foreach循環可以實現類似功能
<?php
//首先計算哪個數組元素少,最大限度節省運算量
$ca = count($a);
$cb = count($b);
//第二個數組元素少
if ($a>=$b) {
$arr = &$a;
$typeid = $b;
//第一個數組元素少
} else {
$arr = &$b;
$typeid = $a;
}
//取得要比較的typeid數組和葯賦值的title數組
$tid = array();
$title = array();
foreach ($typeid as $k => $v){
$tid[] = $v['type_id'];
$title[] = $v['title'];
}
//開始指向相加計算
foreach ($arr as $k => $v){
if (in_array($arr[$k]['type_id'], $tid)) {
$arr[$k]['title'] = $title[k];
}
}
?>
F. PHP中有沒有合並數組值的函數(或者小技巧)
1. 最簡單的辦法:使用 +
下列的代碼:
<?php
$r1 = array('a'=>1,'b'=>3,'c'=>5,'d'=>7,'e'=>9);
$r2 = array('f'=>2,'g'=>4,'h'=>6,'i'=>8,'j'=>10);
$r = $r1+$r2;
echo '<pre>';
print_r($r);
echo '</pre>';
?>
代碼輸出結果:
Array
(
[a] => 1
[b] => 3
[c] => 5
[d] => 7
[e] => 9
[f] => 2
[g] => 4
[h] => 6
[i] => 8
[j] => 10
)
但這種辦法有個需要注意的地方:兩個關鍵字相同的元素會只保留一個,即$r1+r2,則$r1中的數據保留,這個在特殊場合也可能剛好用上也說不定。
2. 使用array_merge() 函數:
<?php
$array1 = array("color" => "red", 2, 4);
$array2 = array("a", "b", "color" => "green", "shape" => "trapezoid", 4);
$result = array_merge($array1, $array2);
print_r($result);
?>
代碼輸出結果:
Array
(
[color] => green
[0] => 2
[1] => 4
[2] => a
[3] => b
[shape] => trapezoid
[4] => 4
)