How to Check If Two Arrays are Equal in PHP?

PHP

When working with arrays in PHP, you often need to compare them to check if they contain the same elements. Array equality can mean different things same elements in same order, same elements regardless of order, or strict type matching. This article explores different approaches to check if two arrays are equal in PHP.

Using the == Operator

The == operator provides a loose comparison, checking if arrays have the same elements in the same order without strict type checking ?

<?php
$arr1 = [1, 2, 3, 4];
$arr2 = [1, 2, 3, 4];

if ($arr1 == $arr2) {
    echo "The arrays are equal";
} else {
    echo "The arrays are not equal";
}
?>
The arrays are equal

Using the === Operator

The === operator performs strict comparison, checking both values and data types ?

<?php
$array1 = [1, 2, 3, 4];
$array2 = [1, 2, '3', 4]; 

if ($array1 === $array2) {
    echo "The arrays are equal!";
} else {
    echo "The arrays are not equal!";
}
?>
The arrays are not equal!

Using array_diff() Method

The array_diff() function compares arrays and returns differences. For unordered comparison, check if differences exist in both directions ?

<?php
$array1 = [1, 2, 3];
$array2 = [3, 2, 1];

if (empty(array_diff($array1, $array2)) && empty(array_diff($array2, $array1))) {
    echo "Arrays are equal";
} else {
    echo "Arrays are not equal";
}
?>
Arrays are equal

Sorting Approach for Unordered Comparison

When order doesn't matter, sort both arrays first, then compare using == ?

<?php
$array1 = [3, 2, 1];
$array2 = [1, 2, 3];

// Sort both arrays
sort($array1);
sort($array2);

// Compare sorted arrays
if ($array1 == $array2) {
    echo "The arrays are equal";
} else {
    echo "The arrays are not equal";
}
?>
The arrays are equal

Comparison Summary

Method Type Checking Order Sensitive Best For
== Loose Yes Same order, mixed types
=== Strict Yes Exact matches
array_diff() Loose No Unordered comparison
Sort + == Loose No Unordered, simple arrays

Conclusion

Choose === for strict equality, == for loose comparison with order, and array_diff() or sorting approach for unordered comparisons. Each method serves different comparison requirements based on your specific needs.

Updated on: 2026-03-15T10:43:20+05:30

6K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements