PHP array_intersect_uassoc checks two or more arrays and returns matches. It compares both the values and the keys with a custom callback function.
Table of Content
How the array_intersect_uassoc Works in PHP
PHP array_intersect_uassoc compares arrays and returns elements that exist in all arrays. It checks both keys and values.
The syntax looks like this:
array_intersect_uassoc(array $array1, array $array2, array ... , callable $callback)
Here is how it works:
$array1
: the main array to compare.$array2, ...
: arrays to check against the main array.$callback
: function that compares the keys.
The function returns an array with the matched values and the matched keys.
array_intersect_uassoc checks both the value and the key. The callback handles the key comparison. If the callback says the keys match, the value comparison decides the result.
Use this function when you need both the value and the key to match. It works well for associative arrays where the order or the key matters.
For a quick example:
$result = array_intersect_uassoc($array1, $array2, 'compareFunction');
The callback defines the key comparison rule. The function returns only elements that match in both value and key.
Examples of array_intersect_uassoc in PHP
Compare Arrays with String Keys:
function compareKeys($a, $b) {
if ($a === $b) return 0;
return ($a > $b) ? 1 : -1;
}
$array1 = ["a" => "red", "b" => "blue", "c" => "green"];
$array2 = ["a" => "red", "b" => "yellow", "d" => "green"];
$result = array_intersect_uassoc($array1, $array2, 'compareKeys');
print_r($result);
This example compares arrays with string keys. Only the key “a” with value “red” matches. The function checks both the key and the value.
Compare Arrays with Mixed Keys:
function compareKeys($a, $b) {
return strcmp((string)$a, (string)$b);
}
$array1 = [1 => "apple", 2 => "banana", "x" => "pear"];
$array2 = ["1" => "apple", 2 => "banana", "y" => "pear"];
$result = array_intersect_uassoc($array1, $array2, 'compareKeys');
print_r($result);
This example compares numeric and string keys. The comparison function casts keys to strings. It returns the values with keys that match after the conversion.
Here is the outout:
Array
(
[1] => apple
[2] => banana
)
Advanced Comparison with Case Sensitivity:
function compareKeys($a, $b) {
return strcmp($a, $b);
}
$array1 = ["A" => "dog", "B" => "cat"];
$array2 = ["a" => "dog", "B" => "cat"];
$result = array_intersect_uassoc($array1, $array2, 'compareKeys');
print_r($result);
This example shows case sensitivity in key comparison. The function does not match “A” with “a”. Only the key “B” with value “cat” appears in the result.
The output:
Array
(
[B] => cat
)
Multiple Arrays with Custom Key Logic:
function compareKeys($a, $b) {
return strcasecmp($a, $b);
}
$array1 = ["One" => 10, "Two" => 20, "Three" => 30];
$array2 = ["one" => 10, "Two" => 40, "Three" => 30];
$array3 = ["ONE" => 10, "Three" => 30, "Four" => 50];
$result = array_intersect_uassoc($array1, $array2, $array3, 'compareKeys');
print_r($result);
This example checks three arrays with case-insensitive keys. The function returns “One” with value 10 and “Three” with value 30.
The output:
Array
(
[One] => 10
[Three] => 30
)
Wrapping Up
You learned how array_intersect_uassoc works with keys and values. You also saw examples with string keys, mixed keys, case rules, and multiple arrays.
Here is a quick recap:
- It compares values and keys across arrays.
- It uses a custom callback for key comparison.
- It returns only matched pairs of keys and values.
FAQs
What does PHP array_intersect_uassoc do with arrays?
How do you use PHP array_intersect_uassoc with a callback?
function compare_keys($a, $b) {
if ($a === $b) {
return 0;
}
return ($a > $b) ? 1 : -1;
}
$array1 = array("a" => "red", "b" => "green", "c" => "blue");
$array2 = array("a" => "red", "b" => "yellow", "d" => "blue");
$result = array_intersect_uassoc($array1, $array2, "compare_keys");
print_r($result);
Result will show only matched key-value pairs with custom comparison.
What is the difference between array_intersect_uassoc and array_intersect_assoc?
- array_intersect_assoc compares arrays with keys using default comparison.
- array_intersect_uassoc compares arrays with keys using user callback.
Can PHP array_intersect_uassoc compare more than two arrays?
function cmp($a, $b) {
if ($a === $b) return 0;
return ($a > $b) ? 1 : -1;
}
$a1 = array("x" => "car", "y" => "bus", "z" => "train");
$a2 = array("x" => "car", "y" => "bike", "z" => "train");
$a3 = array("x" => "car", "y" => "bus", "z" => "plane");
$result = array_intersect_uassoc($a1, $a2, $a3, "cmp");
print_r($result);
The result will include keys that match in all arrays.
Similar Reads
let's now dive into PHP comments—these simple but super important integral parts of PHP coding. You can think of comments…
Connecting PHP to MySQL is not just a technical step—it is the basic part of how data-driven websites work. From…
Use strtoupper() function when you want to change all letters in a string to uppercase in PHP. It works with…
PHP offers four main functions to include files: require, require_once, include, and include_once. Each one gives you a similar purpose…
The PHP superglobal $_FILES is a very important utility and great for dealing with file uploads on the web. When a user…
PHP and MySQL have become an inseparable pair for web developers. One handles the logic, while the other stores the…
Perhaps you're new to PHP or sharpening your skills and looking to understand how numbers work within this language under…
PHP static property helps you manage shared data across instances, but can lead to hidden state changes. In this article,…
Text does not always look the same. One word may appear in lowercase, another in uppercase. You want both to…
The PHP loop runs tasks without the need to write the same lines again.It lets you handle data step by…