array_diff_ukey

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

array_diff_ukey用回調(diào)函數(shù)對(duì)鍵名比較計(jì)算數(shù)組的差集

說(shuō)明

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

array 的鍵與 arrays 的鍵進(jìn)行比較并返回不存在于其它數(shù)組的鍵值。本函數(shù)和 array_diff() 很像,區(qū)別只是用鍵名來(lái)比較而不是值。

此比較是通過(guò)用戶提供的回調(diào)函數(shù)來(lái)進(jìn)行的。如果認(rèn)為第一個(gè)參數(shù)小于,等于,或大于第二個(gè)參數(shù)時(shí)必須分別返回一個(gè)小于零,等于零,或大于零的整數(shù)。

參數(shù)

array

要比較的數(shù)組

arrays

要比較的數(shù)組

key_compare_func

在第一個(gè)參數(shù)小于,等于或大于第二個(gè)參數(shù)時(shí),該比較函數(shù)必須相應(yīng)地返回一個(gè)小于,等于或大于 0 的整數(shù)。

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

返回值

返回一個(gè) array,該數(shù)組包含了 array 中存在但其它數(shù)組不存在的鍵值。

范例

示例 #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'));
?>

以上例程會(huì)輸出:

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

注釋

注意:

注意本函數(shù)只檢查了多維數(shù)組中的一維。當(dāng)然,可以用 array_diff_ukey($array1[0], $array2[0], 'callback_func'); 來(lái)檢查更深的維度。

參見(jiàn)