查詢

array_uintersect_uassoc()函式—用法及示例

「 獲取兩個或更多陣列的交集,同時使用使用者自定義的回撥函式比較陣列的鍵和值 」


array_uintersect_uassoc() 函式用於獲取兩個或更多陣列的交集,同時使用使用者自定義的回撥函式比較陣列的鍵和值。

用法:

array_uintersect_uassoc ( array $array1 , array $array2 [, array $... ], callable $key_compare_func , callable $value_compare_func ): array

引數:

  • $array1:第一個陣列。
  • $array2:第二個陣列。
  • ...:(可選)其他陣列。
  • $key_compare_func:一個使用者自定義的回撥函式用於比較陣列的鍵。該函式接受兩個鍵作為引數,並在它們相等時返回0。
  • $value_compare_func:一個使用者自定義的回撥函式用於比較陣列的值。該函式接受兩個值作為引數,並在它們相等時返回0。

返回值: 返回一個新陣列,其中包含所有輸入陣列的鍵和值的交集。

示例:

// 自定義回撥函式用於比較陣列的鍵
function keyCompare($key1, $key2) {
    if ($key1 == $key2) {
        return 0;
    } elseif ($key1 > $key2) {
        return 1;
    } else {
        return -1;
    }
}

// 自定義回撥函式用於比較陣列的值
function valueCompare($value1, $value2) {
    if ($value1 == $value2) {
        return 0;
    } elseif ($value1 > $value2) {
        return 1;
    } else {
        return -1;
    }
}

$array1 = array("a" => "apple", "b" => "banana", "c" => "cherry");
$array2 = array("b" => "banana", "c" => "cherry", "d" => "date");
$array3 = array("c" => "cherry", "d" => "date", "e" => "elderberry");

$result = array_uintersect_uassoc($array1, $array2, $array3, "keyCompare", "valueCompare");

// 輸出結果
echo "<pre>";
print_r($result);
echo "</pre>";

輸出結果:

Array
(
    [c] => cherry
)

在以上示例中,我們使用自定義的回撥函式 keyCompare()valueCompare() 來比較陣列的鍵和值。函式 array_uintersect_uassoc() 返回了輸入陣列 $array1$array2$array3 中鍵和值的交集,只有 "c" 鍵的值 "cherry" 存在於所有三個陣列中。

補充糾錯
上一個函式: array_uintersect_assoc()函式
下一個函式: array_unique()函式
熱門PHP函式
分享連結