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
In this tutorial, you will learn how to install PHP on your Operating system such as Ubuntu, Windows, or macOS.…
pplications. Such As as From registering new users to collecting form submissions and storing product details. Things like adding a…
Abstract class in PHP appeared to provide a way to define a structure for related classes and don't allow direct…
If you are working with PHP and MySQL, one of the first tasks you may need is to create a…
As you are entering into PHP, it would be essential to understand how logical operators work. The PHP AND operator…
Ever notice how some websites just seem to "know" you? That’s thanks to cookies! When you’re working with PHP, $_COOKIE becomes a…
User input can be risky. Hackers exploit weak validation to inject malicious data. PHP filter_input() helps you sanitize and validate…
let's now dive into PHP comments—these simple but super important integral parts of PHP coding. You can think of comments…
MySQL Prepared Statements in PHP are an important tool for ensuring security and optimization. They safeguard against SQL injection attacks,…
PHP’s if-elseif statement is a fundamental construct that allows developers to control the flow of their code based on different conditions. In…