Khi làm mảng PHP, bạn thường cần so sánh xem có cùng phần tử không. Bằng nhau mảng có nghĩa khác nhau: cùng phần tử cùng thứ tự, cùng phần tử bất kể thứ tự, hoặc khớp kiểu nghiêm ngặt. Bài này khám phá cách kiểm tra hai mảng bằng nhau trong PHP.
Dùng Toán Tử ==
Toán tử == so sánh lỏng lẻo, kiểm tra mảng có cùng phần tử cùng thứ tự mà không kiểm tra kiểu nghiêm ngặt.
<?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
Dùng Toán Tử ===
Toán tử === so sánh nghiêm ngặt, kiểm tra cả giá trị và kiểu dữ liệu.
<?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!
Dùng Phương Pháp array_diff()
Hàm array_diff() so sánh mảng và trả về khác biệt. Cho so sánh không theo thứ tự, kiểm tra khác biệt tồn tại hai chiều.
<?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
Cách Sắp Xếp Cho So Sánh Không Theo Thứ Tự
Khi thứ tự không quan trọng, sắp xếp cả hai mảng trước, rồi so sánh dùng ==.
<?php
$array1 = [3, 2, 1];
$array2 = [1, 2, 3];
// Sắp xếp cả hai mảng
sort($array1);
sort($array2);
// So sánh mảng đã sắp xếp
if ($array1 == $array2) {
echo "The arrays are equal";
} else {
echo "The arrays are not equal";
}
?>
The arrays are equal
Tóm Tắt So Sánh
| Phương pháp | Kiểm tra kiểu | Nhạy cảm thứ tự | Phù hợp cho |
|---|---|---|---|
== | Lỏng lẻo | Có | Cùng thứ tự, kiểu hỗn hợp |
=== | Nghiêm ngặt | Có | Khớp chính xác |
array_diff() | Lỏng lẻo | Không | So sánh không thứ tự |
Sort + == | Lỏng lẻo | Không | Không thứ tự, mảng đơn giản |
Kết Luận
Chọn === cho bằng nhau nghiêm ngặt, == cho so sánh lỏng lẻo có thứ tự, và array_diff() hoặc cách sắp xếp cho so sánh không theo thứ tự. Mỗi phương pháp phục vụ yêu cầu so sánh khác nhau tùy nhu cầu cụ thể.
