Hàm array_diff() trong PHP

Hàm array_diff() trong PHP
Hàm array_diff() trong PHP

Chức năng của Hàm array_diff() trong PHP

Hàm array_diff() trong PHP dùng để lấy những phần tử trong mảng đầu tiên có giá trị không giống với giá trị của các phần tử trong mảng khác để cho vào mảng mới, các Khóa (Key) và giá trị của phần tử không thay đổi khi chuyển qua mảng mới, hàm này không làm thay đổi các mảng gốc.

Cú pháp của Hàm array_diff() trong PHP

$mảng_mới = array_diff($biến_mảng_1,$biến_mảng_2,$biến_mảng_3);

$biến_mảng_1,$biến_mảng_2,$biến_mảng_3: Thêm vào bao nhiêu mảng cũng được, từ 2 mảng trở lên.

$mảng_mới: Kết quả trả về mảng mới mà không làm thay đổi các mảng gốc.

Ví dụ Hàm array_diff() trong PHP

<h2>Hàm array_diff() các mảng thường</h2>
<?php
$mangmot = array("Dung","Vân","Lực","Quỳnh");
$manghai= array("Dung","Vân","Lực","Cherry");
$mangba= array("Dung","Vân","Lực","Nhím");
$mangmoi = array_diff($mangmot,$manghai,$mangba);
print_r($mangmoi); // Kết quả: Array ( [3] => Quỳnh )
?>

<h2>Hàm array_diff() các mảng liên kết</h2>
<?php 
$manglkmot = array("Dung"=>29,"Van"=>28,"Nhím"=>28,"Luc"=>35);
$manglkhai = array("Cherry"=>29,"Van"=>30,"Quynh"=>1);
$manglkba = array("Cherry"=>29,"Van"=>30,"Nhím"=>2);
$manglkmoi = array_diff($manglkmot,$manglkhai,$manglkba);
print_r($manglkmoi); // Kết quả: Array ( [Van] => 28 [Nhím] => 28 [Luc] => 35 )
?>

<h2>Hàm array_diff() giữa mảng bình thường và mảng liên kết</h2>
<?php 
$manglkmot = array("Dung"=>29,"Van"=>28,"Nhím"=>28,"Luc"=>35);
$manglkhai = array("Cherry"=>29,"Van"=>30,"Quynh"=>1);
$mangbtba = array(29,35,2);
$manglkmoi = array_diff($manglkmot,$manglkhai,$mangbtba);
print_r($manglkmoi); // Kết quả: Array ( [Van] => 28 [Nhím] => 28 )
?>

Kết quả:

/////Hàm array_diff() các mảng thường
Array ( [3] => Quỳnh )

/////Hàm array_diff() các mảng liên kết
Array ( [Van] => 28 [Nhím] => 28 [Luc] => 35 )

/////Hàm array_diff() giữa mảng bình thường và mảng liên kết
Array ( [Van] => 28 [Nhím] => 28 )

Chạy Thử

Kinh nghiệm sử dụng Hàm array_diff() trong PHP

Khi làm việc với nhiều mảng, array_diff() phù hợp cho những trường hợp cần tìm các giá trị chỉ xuất hiện ở mảng đầu tiên nhưng không có trong các mảng được so sánh. Để kết quả đúng với mục đích xử lý dữ liệu, nên xác định rõ mảng nào là tập dữ liệu cần kiểm tra trước khi thực hiện so sánh.

Những lưu ý quan trọng khi so sánh các mảng

array_diff() chỉ tập trung vào giá trị, không dùng khóa để xác định phần tử tương ứng. Vì vậy, việc thay đổi vị trí các phần tử hoặc khóa của mảng không làm thay đổi cách hàm tìm giá trị khác biệt.

Kết quả trả về vẫn giữ lại khóa của các phần tử thuộc mảng đầu tiên. Nếu cần một mảng có chỉ số liên tục từ 0, có thể kết hợp thêm array_values() sau khi so sánh.

<?php
$sanPham = ["A", "B", "C", "D"];
$daBan = ["B", "D"];

$chuaBan = array_diff($sanPham, $daBan);
$chuaBan = array_values($chuaBan);

print_r($chuaBan);
?>

Trong ví dụ trên, kết quả chỉ còn AC. Việc gọi array_values() giúp chuẩn hóa lại khóa nếu mảng kết quả được sử dụng tiếp cho danh sách hoặc dữ liệu trả về.

Một điểm khác cần lưu ý là array_diff() không kiểm tra kiểu dữ liệu theo cách so sánh nghiêm ngặt. Khi dữ liệu đến từ biểu mẫu, API hoặc cơ sở dữ liệu, nên chuẩn hóa dữ liệu trước nếu kiểu dữ liệu có thể ảnh hưởng đến kết quả xử lý.

Lời kết

Cảm ơn các bạn đã tham khảo bài viết Hàm array_diff() trong PHP.

  • 0 Bình luận
Trần Thị Vân | Content Creator Web Mới
Trần Thị Vân
Trần Thị Vân là Content Creator tại Web Mới, phụ trách nghiên cứu, biên soạn nội dung và chia sẻ kiến thức về website, SEO, lập trình cùng các xu hướng công nghệ
Đánh giá
Chia sẻ nội dung đánh giá của bạn về Hàm array_diff() trong PHP
Email, Điện thoại của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *
Đánh giá của bạn
Tên *
Email
Số điện thoại *
Bình luận, Hỏi đáp
Yêu Cầu Báo Giá
Gửi trang web mẫu cần làm theo, chúng tôi sẽ báo giá đến bạn từ Email (tanlucit09@gmail.com - Bùi Tấn Lực) hoặc Zalo (Lực IT - 0398259259) !