用回撥函式對鍵名比較計算陣列的差集

array_diff_ukey

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

array_diff_ukey用回撥函式對鍵名比較計算陣列的差集

說明

array_diff_ukey(array $array, array ...$arrays, callable $key_compare_func): array

array 的鍵與 arrays 的鍵進行比較並返回不存在於其它陣列的鍵值。本函式和 array_diff() 很像,區別只是用鍵名來比較而不是值。

此比較是通過使用者提供的回撥函式來進行的。如果認為第一個參數小於,等於,或大於第二個參數時必須分別返回一個小於零,等於零,或大於零的整數。

參數

array

要比較的陣列

arrays

要比較的陣列

key_compare_func

在第一個參數小於,等於或大於第二個參數時,該比較函式必須相應地返回一個小於,等於或大於 0 的整數。

callback(mixed $a, mixed $b): int

返回值

返回一個 array,該陣列包含了 array 中存在但其它陣列不存在的鍵值。

範例

示例 #1 array_diff_ukey() 例子

<?php
function key_compare_func($key1$key2)
{
    if (
$key1 == $key2)
        return 
0;
    else if (
$key1 $key2)
        return 
1;
    else
        return -
1;
}

$array1 = array('blue'  => 1'red'  => 2'green'  => 3'purple' => 4);
$array2 = array('green' => 5'blue' => 6'yellow' => 7'cyan'   => 8);

var_dump(array_diff_ukey($array1$array2'key_compare_func'));
?>

以上例程會輸出:

array(2) {
  ["red"]=>
  int(2)
  ["purple"]=>
  int(4)
}

註釋

注意:

注意本函式只檢查了多維陣列中的一維。當然,可以用 array_diff_ukey($array1[0], $array2[0], 'callback_func'); 來檢查更深的維度。

參見

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *