php語言用函數(shù)求和(hé)求平均值 " />
在PHP語言中,數(shù)組是一種非常常見的數(shù)據類型。有(yǒu)時(shí)我們需要對數(shù)組進行(xíng)一些(xiē)常見的操作(zuò),如求和(hé)、平均值等。本文将介紹PHP語言中的數(shù)組遞歸調用函數(shù)以及如何使用函數(shù)求和(hé)和(hé)平均值。
數(shù)組遞歸調用函數(shù)
在PHP中,遞歸是一種非常有(yǒu)用的技(jì)術(shù),可(kě)以方便地對多(duō)層嵌套的數(shù)組進行(xíng)操作(zuò)。在實際開(kāi)發中,經常遇到數(shù)組中嵌套數(shù)組的情況,如果我們要對這個(gè)數(shù)組進行(xíng)操作(zuò),就需要用到遞歸調用函數(shù)。
遞歸調用是指在函數(shù)內(nèi)部調用自身的行(xíng)為(wèi)。如果函數(shù)A中調用了函數(shù)A,那(nà)麽函數(shù)A就是遞歸函數(shù)。在遞歸調用過程中,程序将逐步進入更深層次的函數(shù)調用,直到滿足停止遞歸的條件才開(kāi)始依次返回結果。
在PHP中,我們可(kě)以使用array_walk_recursive()函數(shù)來(lái)遞歸處理(lǐ)多(duō)維數(shù)組。該函數(shù)的基本語法為(wèi):
```php
array_walk_recursive($array, $callback [, $userdata]);
```
其中,$array是要遞歸處理(lǐ)的數(shù)組,$callback是一個(gè)回調函數(shù)用于對數(shù)組的每個(gè)值進行(xíng)處理(lǐ)(回調函數(shù)可(kě)以是自定義函數(shù)或內(nèi)置函數(shù)),$userdata是可(kě)選參數(shù),傳遞給回調函數(shù)的附加數(shù)據。
下面是一個(gè)簡單的示例,演示如何使用array_walk_recursive()函數(shù)處理(lǐ)多(duō)維數(shù)組:
```php
function print_item($item, $key)
{
echo "$key : $item\n";
}
$array = array(
"fruit" => array(
"apple" => array(
"name" => "Apple",
"color" => "Red",
"weight" => "150g"
),
"banana" => array(
"name" => "Banana",
"color" => "Yellow",
"weight" => "120g"
)
),
"vegetable" => array(
"carrot" => array(
"name" => "Carrot",
"color" => "Orange",
"weight" => "50g"
),
"cabbage" => array(
"name" => "Cabbage",
"color" => "Green",
"weight" => "400g"
)
)
);
array_walk_recursive($array, 'print_item');
```
輸出結果為(wèi):
```
name : Apple
color : Red
weight : 150g
name : Banana
color : Yellow
weight : 120g
name : Carrot
color : Orange
weight : 50g
name : Cabbage
color : Green
weight : 400g
```
在這個(gè)示例中,$array是一個(gè)多(duō)維數(shù)組,包含兩個(gè)大(dà)類别(水(shuǐ)果和(hé)蔬菜),每個(gè)大(dà)類别下面有(yǒu)多(duō)個(gè)子類别,如蘋果、香蕉等屬于水(shuǐ)果類别。我們使用array_walk_recursive()函數(shù)将數(shù)組中每個(gè)元素都傳遞給print_item()函數(shù)進行(xíng)輸出。
求和(hé)
求和(hé)是一種非常常見的操作(zuò),可(kě)以使用PHP提供的內(nèi)置函數(shù)array_sum()來(lái)輕松地實現。array_sum()函數(shù)的語法為(wèi):
```php
array_sum(array $array): float|int
```
該函數(shù)接受一個(gè)數(shù)組作(zuò)為(wèi)輸入,返回數(shù)組中所有(yǒu)值的總和(hé)。如果數(shù)組中的值不是數(shù)值類型,則會(huì)被自動轉換成數(shù)值類型。
下面是一個(gè)示例,演示如何使用array_sum()函數(shù)對數(shù)組中的值進行(xíng)求和(hé):
```php
$array = array(1, 2, 3, 4, 5);
$sum = array_sum($array);
echo "sum: $sum\n";
```
輸出結果為(wèi):
```
sum: 15
```
在這個(gè)示例中,$array是一個(gè)包含5個(gè)值的數(shù)組,每個(gè)值都是整數(shù)類型。我們使用array_sum()函數(shù)将數(shù)組中所有(yǒu)值的總和(hé)求出,并使用echo語句輸出結果。
求平均值
求平均值是求和(hé)的衍生(shēng)操作(zuò),可(kě)以使用array_sum()函數(shù)求和(hé)後再除以元素個(gè)數(shù)即可(kě)。還(hái)可(kě)以使用PHP提供的內(nèi)置函數(shù)array_count_values()來(lái)統計(jì)每個(gè)元素出現的次數(shù)。
array_count_values()函數(shù)的語法為(wèi):
```php
array_count_values(array $array): array
```
該函數(shù)接受一個(gè)數(shù)組作(zuò)為(wèi)輸入,并返回一個(gè)新數(shù)組,新數(shù)組的鍵是原數(shù)組中出現的元素,值是該元素在原數(shù)組中出現的次數(shù)。
下面是一個(gè)示例,演示如何使用array_count_values()函數(shù)統計(jì)數(shù)組中每個(gè)元素出現的次數(shù),并計(jì)算(suàn)該數(shù)組所有(yǒu)元素的平均值:
```php
$array = array(1, 2, 3, 4, 5, 5);
$count_values = array_count_values($array);
$sum = array_sum($array);
$count = count($array);
$average = $sum / $count;
echo "count_values: \n";
print_r($count_values);
echo "sum: $sum\n";
echo "count: $count\n";
echo "average: $average\n";
```
輸出結果為(wèi):
```
count_values:
Array
(
[1] => 1
[2] => 1
[3] => 1
[4] => 1
[5] => 2
)
sum: 20
count: 6
average: 3.3333333333333
```
在這個(gè)示例中,$array是一個(gè)包含6個(gè)值的數(shù)組,在計(jì)算(suàn)平均值之前,我們使用array_count_values()函數(shù)統計(jì)了每個(gè)元素出現的次數(shù),并使用print_r()函數(shù)輸出結果。然後使用array_sum()函數(shù)求和(hé)、count()函數(shù)統計(jì)元素個(gè)數(shù),最後計(jì)算(suàn)平均值并輸出結果。
總結
在PHP語言中,數(shù)組是一種非常常見的數(shù)據類型。有(yǒu)時(shí)我們需要對數(shù)組進行(xíng)一些(xiē)常見的操作(zuò),如求和(hé)、平均值等。本文介紹了PHP語言中的數(shù)組遞歸調用函數(shù)以及如何使用函數(shù)求和(hé)和(hé)平均值。
數(shù)組遞歸調用是一種非常有(yǒu)用的技(jì)術(shù),可(kě)以方便地對多(duō)層嵌套的數(shù)組進行(xíng)操作(zuò)。使用array_walk_recursive()函數(shù)可(kě)以遞歸處理(lǐ)多(duō)維數(shù)組。使用array_sum()函數(shù)可(kě)以輕松地求出數(shù)組中所有(yǒu)值的總和(hé),使用array_count_values()函數(shù)可(kě)以統計(jì)數(shù)組中每個(gè)元素出現的次數(shù)。
上海一涵網絡科技有限公司我們是一家(jiā)專注于網站(zhàn)建設、企業營銷、網站(zhàn)關鍵詞排名、AI內(nèi)容生(shēng)成、新媒體(tǐ)營銷和(hé)短(duǎn)視(shì)頻營銷等業務的公司。我們擁有(yǒu)一支優秀的團隊,專門(mén)緻力于為(wèi)客戶提供優質的服務。
我們緻力于為(wèi)客戶提供一站(zhàn)式的互聯網營銷服務,幫助客戶在激烈的市場(chǎng)競争中獲得(de)更大(dà)的優勢和(hé)發展機會(huì)!
發表評論 取消回複