The PHP array_diff_ukey function compares keys in two or more arrays. It returns the keys from the first array that do not match keys in the other arrays.
Table of Content
You can pass a custom callback to decide how the keys match. This function is useful when arrays have special key formats and need strict custom comparison.
Syntax and Parameters of array_diff_ukey in PHP Function
The syntax looks like this:
array_diff_ukey(array $array1, array $array2, array ...$arrays, callable $key_compare_func)
Here is how it works:
- array1: the main array to compare.
- array2, …arrays: arrays to compare with the first array.
- key_compare_func: a user function that defines the logic of key comparison.
The function checks only the keys. It does not check values. The comparison logic depends on the callback you provide.
Here is a quick example:
function compareKeys($a, $b) {
return strcmp($a, $b);
}
$result = array_diff_ukey(
["a" => "red", "b" => "green", "c" => "blue"],
["c" => "yellow", "d" => "black"],
"compareKeys"
);
print_r($result);
This returns the keys a
and b
because they do not exist in the second array. The output:
Array
(
[a] => red
[b] => green
)
The Difference Between array_diff_ukey and array_diff_key
Both functions compare array keys. The difference is in how they test equality.
- array_diff_key: compares keys with default PHP comparison rules.
- array_diff_ukey: compares keys with a custom function.
Here is the comparison:
Function | Key Comparison Logic | Callback Use | Value Check |
---|---|---|---|
array_diff_key | Normal PHP comparison rules | No | No |
array_diff_ukey | Custom comparison | Yes | No |
You can use the array_diff_key if arrays need simple key comparison, while the array_diff_ukey if arrays need special rules for keys.
Examples of array_diff_ukey in PHP
Basic Custom Key Comparison:
function myCompare($a, $b) {
return strcmp($a, $b);
}
$num1 = ["X" => 10, "Y" => 20, "Z" => 30];
$num2 = ["Y" => 40, "A" => 50];
print_r(array_diff_ukey($num1, $num2, "myCompare"));
This compares the keys with a custom function. The result keeps keys X
and Z
because they do not exist in the second array. Here is the output:
Array
(
[X] => 10
[Z] => 30
)
Numeric Keys with Custom Logic:
function compareNumbers($a, $b) {
return $a <=> $b;
}
$array1= [1 => "cat", 2 => "dog", 3 => "bird"];
$array2= [3 => "fish", 4 => "tiger"];
print_r(array_diff_ukey($array1, $array2, "compareNumbers"));
This compares numeric keys with a callback. Keys 1
and 2
remain because they do not match keys from the second array. The output:
Array
(
[1] => cat
[2] => dog
)
Case-Insensitive Comparison:
function compareCase($a, $b) {
return strcasecmp($a, $b);
}
$values1 = ["One" => 1, "Two" => 2, "Three" => 3];
$values2 = ["one" => 11, "four" => 44];
print_r(array_diff_ukey($values1, $values2, "compareCase"));
This compares keys without case sensitivity. Keys Two
and Three
remain because the function treats One
and one
as equal. The output:
Array
(
[Two] => 2
[Three] => 3
)
Multi-Array Key Comparison:
function extract_array_keys_callback($a, $b) {
return strcmp($a, $b);
}
$list1 = array(
"a" => 1,
"b" => 2,
"c" => 3
);
$arra2 = array(
"c" => 10,
"d" => 20
);
$numeric3 = array(
"a" => 100,
"e" => 200
);
$keys_diff = array_diff_ukey($list1, $arra2, $numeric3, "extract_array_keys_callback");
print_r( $keys_diff );
This checks the keys in all three arrays. Only b stays because the a key and c key appear in the other. The output:
Array
(
[b] => 2
)
Wrapping Up
You learned what array_diff_ukey does and how it compares keys with a custom callback.
Here is a quick recap:
- array_diff_ukey compares only keys, not values.
- You can pass a custom function to compare the keys of arrays.
- array_diff_key uses normal PHP comparison rules.
- It works with special logic for complex cases.
FAQs
What is PHP array_diff_ukey used for?
- Input arrays are compared by keys
- A custom callback handles the comparison
- Output is the difference in keys
function compare_keys($a, $b) {
if ($a === $b) return 0;
return ($a > $b) ? 1 : -1;
}
$array1 = array("a" => "apple", "b" => "banana", "c" => "cherry");
$array2 = array("a" => "apple", "d" => "date");
$result = array_diff_ukey($array1, $array2, "compare_keys");
print_r($result);
How does array_diff_ukey differ from array_diff_key?
array_diff_key
compares keys directly, while
array_diff_ukey
compares keys with a custom function.
array_diff_key
is faster and directarray_diff_ukey
allows custom logic- Both return keys missing from other arrays
$array1 = array("a" => "apple", "b" => "banana");
$array2 = array("a" => "apple", "c" => "cherry");
print_r(array_diff_key($array1, $array2));
print_r(array_diff_ukey($array1, $array2, function($a,$b){
return strcmp($a,$b);
}));
Can array_diff_ukey handle case-insensitive keys?
'A'
and 'a'
.
function case_insensitive($a, $b) {
return strcasecmp($a, $b);
}
$array1 = array("A" => "apple", "B" => "banana");
$array2 = array("a" => "apricot");
$result = array_diff_ukey($array1, $array2, "case_insensitive");
print_r($result);
What are real use cases for array_diff_ukey?
- Compare user IDs between two lists
- Check configuration keys in arrays
- Detect missing keys in API responses
Similar Reads
The PHP shorthand conditional operator gives a quick way to choose between two values and replaces long if-else blocks. What…
PHP gives us the ability to work with MongoDB, highlighting the importance of CRUD (Create, Read, Update, Delete) operations for…
The abs() function in PHP gives you a number without its sign — it always returns a positive value. That…
Understanding how to update data in PHP and MySQL is like editing a draft—it is all about tweaking the right…
PHP arrays serve as powerful tools for storing multiple values in a single variable. To manipulate arrays efficiently, PHP provides…
PHP developers may be need to determine the number of elements in an array. The count() function in PHP makes…
A PHP float is a kind of number that has a decimal point, like 2.45 or 0.11. It’s also called…
It’s very important to remember user data for each session when building web applications. This enables a high level of…
The array_combine function in PHP creates a new array with one array for keys and another for values. It needs…
File Handling in PHP is an important tool especially when you need to manage files such as reading, writing, or…