在 PHP 中,有時我們需要對兩個陣列的元素進行求和,而且這兩個陣列可能長度不一樣。本文將為大家介紹兩種方法來實現這個目標。
方法一:使用for 迴圈
這個方法利用for 迴圈逐一遍歷數組元素,將對應位置上的元素相加並儲存到新的陣列中,最後傳回這個新的數組。程式碼如下:
function sumArrays($arr1, $arr2) { $n1 = count($arr1); $n2 = count($arr2); $n = max($n1, $n2); $result = array(); for ($i = 0; $i < $n; $i++) { $sum = 0; if ($i < $n1) { $sum += $arr1[$i]; } if ($i < $n2) { $sum += $arr2[$i]; } array_push($result, $sum); } return $result; }
這裡我們分別計算兩個陣列的長度 $n1$ 和 $n2$,然後取最大值 $n$,以此作為新陣列的長度。
接著,在for 迴圈中,我們先定義$sum$ 置為0,然後判斷目前索引$i$ 是否小於$n1$ 或$n2$,如果是,就將對應位置的元素加到$sum$ 中。最後將 $sum$ 儲存到新數組中,並傳回結果。
方法二:使用 array_map() 函數
這個方法使用 PHP 的 array_map() 函數和匿名函數。 array_map() 函數將對應兩個陣列的元素作為參數傳遞給匿名函數,然後將它們相加並傳回一個新的陣列。程式碼如下:
function sumArrays($arr1, $arr2) { $n1 = count($arr1); $n2 = count($arr2); $n = max($n1, $n2); $result = array_map(function($a, $b) { return $a + $b; }, array_pad($arr1, $n, 0), array_pad($arr2, $n, 0)); return $result; }
首先,我們使用 count() 函數計算兩個陣列的長度 $n1$ 和 $n2$,然後取最大值 $n$。
然後,我們使用 array_pad() 函數將兩個陣列填入相同的長度。如果其中一個陣列比另一個陣列長,我們就用 0 填滿它的空白部分。
接著,我們呼叫 array_map() 函數和匿名函數,以填入後的兩個陣列作為參數傳入。匿名函數將對應兩個元素相加並傳回結果。最後回傳 $result$。
這種方法看起來更簡潔一些,並且使用了內建函數,但在處理大型的陣列時可能比第一種方法更慢。
總結
本文介紹了兩種方法來對 PHP 中的兩個陣列元素進行求和。方法一使用了 for 循環,而方法二使用了 PHP 的內建函數 array_map()。兩種方法各有優劣,可以依照自己的需求選擇適合的方法。
以上是php怎麼對兩個陣列的元素進行求和的詳細內容。更多資訊請關注PHP中文網其他相關文章!