定義和用法
array_diff_uassoc() 函數使用使用者自訂的回呼函數 (callback) 做索引檢查來計算兩個或多個數組的差集。返回一個數組,該數組包括了在 array1 中但是不在任何其他參數數組中的值。
注意,與 array_diff() 函數 不同的是,鍵名也要進行比較。
參數 function 是使用者自訂的用來比較兩個數組的函數,該函數必須帶有兩個參數 - 即兩個要進行對比的鍵名。因此與函數array_diff_assoc() 的行為正好相反,後者是用內建函式進行比較的。
返回的數組中鍵名保持不變。
文法
array_diff_uassoc(array1,array2,array3...,function)
參數
描述
array1必需。與其他數組進行比較的第一個數組。
array2必需。與第一個數組進行比較的數組。
array3可選。與第一個數組進行比較的數組。可以有多個。
function必需。使用者自訂函數的名稱。
例子 1
<?php function myfunction($v1,$v2) { if ($v1===$v2) { return 0; } if ($v1>$v2) { return 1; } else { return -1; } } $a1=array(0=>"Dog",1=>"Cat",2=>"Horse"); $a2=array(3=>"Dog",1=>"Cat",5=>"Horse"); print_r(array_diff_uassoc($a1,$a2,"myfunction")); ?>
輸出:
Array ( [0] => Dog [2] => Horse )
例子 2
如何為該函數分配多個數組:
<?php function myfunction($v1,$v2) { if ($v1===$v2) { return 0; } if ($v1>$v2) { return 1; } else { return -1; } } $a1=array(0=>"Dog",1=>"Cat",2=>"Horse"); $a2=array(3=>"Dog",1=>"Cat",5=>"Horse"); $a3=array(6=>"Bird",0=>"Dog",5=>"Horse"); print_r(array_diff_uassoc($a1,$a2,$a3,"myfunction")); ?>
輸出:
Array ( [2] => Horse )