簡體   English   中英

PHP按鍵和值比較兩個多維數組

[英]PHP Compare two multidimensional arrays by key and value

我正在忙着學習PHP,並且正在尋找一種通過鍵和值比較兩個關聯數組的方法,然后找出兩者之間的差異,即

如果我有一個關聯數組:

array (size=2)
  'x15z' => int '12' (length=2)
  'x16z' => int '3' (length=1)

另有以下內容:

array (size=1)
  'x15z' => int 1

我試圖找到兩個關聯數組之間的區別,我正在嘗試使用array_diff_assoc($ array1,$ array2),這適用於一個元素在另一個元素中丟失的情況但是在上述實例中,差異是

array (size=2)
  'x15z' => int '12' (length=2)
  'x16z' => int '3' (length=1)

而不是我正在尋找的是:

array (size=2)
  'x15z' => int '11' (length=2)
  'x16z' => int '3' (length=1)

由此還計算值差。

是否有任何邏輯方法可以根據鍵和值計算兩個關聯數組的差異? 謝謝!

function calculateDifference($array1, $array2){
  $difference = array();
  foreach($array1 as $key => $value){
    if(isset($array2[$key])){
      $difference[$key] = abs($array1[$key] - $array2[$key]);
    }else{
      $difference[$key] = $value;
    }
  }
  foreach($array2 as $key => $value){
    if(isset($array1[$key])){
      $difference[$key] = abs($array1[$key] - $array2[$key]);
    }else{
      $difference[$key] = $value;
    }
  }
  return $difference;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM