首頁 > 後端開發 > PHP問題 > 如何在PHP中對二維數組中相同元素進行求和

如何在PHP中對二維數組中相同元素進行求和

PHPz
發布: 2023-04-25 09:47:34
原創
1267 人瀏覽過

在PHP中,二維數組是非常常見的一種資料結構,它由多個一維數組組成,儲存了相對複雜的資料結構。當涉及到二維數組的操作時,有時需要對其中相同的元素做求和處理。在本文中,我們將分享如何在PHP中對二維數組中相同元素進行求和。

首先,我們要先了解什麼是二維陣列。二維數組是一個數組,其中每個元素都是一個數組。我們可以用以下方式定義一個二維陣列:

$array = array(
  array(1, 2, 3),
  array(4, 5, 6),
  array(7, 8, 9)
);
登入後複製

這裡我們定義了一個3x3的二維陣列。其中,每個子數組具有相同的元素個數,並按照一定的順序進行排列。接下來,我們將學習如何在這些子陣列中對相同元素進行求和。

第一種方法是使用foreach迴圈。我們可以遍歷二維數組中的每個子數組,並使用另一個foreach循環遍歷子數組中的每個元素,最後將所有相同元素求和。實作程式碼如下:

$sums = array();

foreach ($array as $subarray) {
  foreach ($subarray as $key => $value) {
    if (isset($sums[$key])) {
      $sums[$key] += $value;
    }
    else {
      $sums[$key] = $value;
    }
  }
}

print_r($sums);
登入後複製

在這個程式碼中,我們先建立了一個名為$sums的新陣列。我們使用雙重循環遍歷二維數組中的每個子數組以及每個子數組中的每個元素。對於每個元素,我們檢查其是否已經存在於$sums中,如果是,則將原有的值與該元素相加;如果不是,則將值加到$sums中。最後,我們將$sums輸出以查看結果。

第二種方法是使用array_reduce函數。此函數可將數組中的每個元素作為參數並傳回一個累計值。我們可以使用數字組合併運算子「 」來將所有數字組合併到一個數組中,並使用array_reduce函數對相同鍵的元素進行求和。實作程式碼如下:

$sums = array_reduce($array, function ($result, $subarray) {
  return $result + $subarray;
}, array());

print_r($sums);
登入後複製

在這個程式碼中,我們使用array_reduce函數對二維數組中的每個子數組進行迭代。在每個迭代過程中,我們使用數字組合並運算子“ ”將所有數字組合併到一個數組中。最後,我們將傳回的結果輸出以查看結果。

第三種方法是使用array_walk_recursive函數。此函數可對多維數組中的每個元素進行回調。我們可以使用函數對二維數組中的每個元素進行操作,實現程式碼如下:

$sums = array();

array_walk_recursive($array, function ($value, $key) use (&$sums) {
  if (isset($sums[$key])) {
    $sums[$key] += $value;
  }
  else {
    $sums[$key] = $value;
  }
});

print_r($sums);
登入後複製

在這個程式碼中,我們首先建立了一個名為$sums的新陣列。我們使用array_walk_recursive函數對二維數組中的每個元素進行回調,例如目前遍歷的元素的值和鍵。在每個回調中,我們檢查當前鍵是否已存在於$sums中,然後將其值加到現有值上或將其新增至$sums。最後,我們將$sums輸出以查看結果。

總結起來,我們可以使用循環、函數和回呼函數等不同方式來對PHP中的二維數組中的相同元素進行求和。這取決於您的具體需求和喜好。無論使用哪種方法,您都可以透過合理地使用PHP內建函數來輕鬆處理二維數組中的各種操作。

以上是如何在PHP中對二維數組中相同元素進行求和的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板