[英]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.