PHP Conference Japan 2024

array_diff_ukey

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

array_diff_ukey使用回調函式比較鍵值來計算陣列的差異

說明

array_diff_ukey(陣列 $array, 陣列 ...$arrays, 可呼叫 $key_compare_func): 陣列

比較 array 的鍵與 arrays 的鍵,並返回差異。此函式類似於 array_diff(),只是比較的是鍵而不是值。

array_diff_key() 不同的是,索引的比較是使用使用者提供的回呼函式,而不是內建函式。

參數

array

要比較來源的陣列

arrays

要比較的其他陣列

key_compare_func

比較函式必須返回一個整數。如果第一個參數分別小於、等於或大於第二個參數,則返回小於零、等於零或大於零的整數。

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

從比較函式返回*非整數*值(例如 float)將導致回呼函式的返回值被內部強制轉換為 int。因此,諸如 0.990.1 之類的值都將被強制轉換為整數值 0,這將導致這些值被視為相等。

返回值

返回一個 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)
}

注意事項

注意:

這個函式只會檢查 n 維陣列的一個維度。當然,您可以使用 array_diff_ukey($array1[0], $array2[0], 'callback_func'); 來檢查更深層的維度。

另請參閱

新增註釋

使用者貢獻的註釋

此頁面沒有使用者貢獻的註釋。
To Top