PHP array_intersect_uassoc: How it Works with Examples

php array_intersect_uassoc

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.

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?

array_intersect_uassoc compares two or more arrays with values and keys using a user-defined callback. It returns the matched pairs.

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?

Yes, you can pass multiple arrays for comparison:
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

Install PHP on Operating System: Ubuntu, Windows, and macOS

In this tutorial, you will learn how to install PHP on your Operating system such as Ubuntu, Windows, or macOS.…

How to Insert Data into MySQL with PHP

pplications. Such As as From registering new users to collecting form submissions and storing product details. Things like adding a…

Abstract Class in PHP: How It Works & Examples

Abstract class in PHP appeared to provide a way to define a structure for related classes and don't allow direct…

PHP MySQL Create Database: MySQLi & PDO Examples

If you are working with PHP and MySQL, one of the first tasks you may need is to create a…

PHP AND (&&) Operator: Usage & Examples

As you are entering into PHP, it would be essential to understand how logical operators work. The PHP AND operator…

PHP $_COOKIE: Securely Store and Manage Data

Ever notice how some websites just seem to "know" you? That’s thanks to cookies! When you’re working with PHP, $_COOKIE becomes a…

PHP filter_input: How to Validate Input Securely

User input can be risky. Hackers exploit weak validation to inject malicious data. PHP filter_input() helps you sanitize and validate…

PHP Comment: How to Write Comments in PHP

let's now dive into PHP comments—these simple but super important integral parts of PHP coding. You can think of comments…

PHP Prepared Statements in MySQL: Preventing SQL Injection

MySQL Prepared Statements in PHP are an important tool for ensuring security and optimization. They safeguard against SQL injection attacks,…

PHP if-elseif Statement: ‘elseif’ versus ‘else if’

PHP’s if-elseif statement is a fundamental construct that allows developers to control the flow of their code based on different conditions. In…

Previous Article

Arrow Function in JavaScript: How it Works with Examples

Next Article

How to Build Responsive HTML Email Templates

Write a Comment

Leave a Comment

Your email address will not be published. Required fields are marked *


Subscribe to Get Updates

Get the latest updates on Coding, Database, and Algorithms straight to your inbox.
No spam. Unsubscribe anytime.