Hàm array_unique() trong PHP

Hàm array_unique() trong PHP
Hàm array_unique() trong PHP

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

Hàm array_unique() trong PHP dùng để loại bỏ các phần tử trong mảng có giá trị giống nhau chỉ để lại phần tử đầu tiên sau đó đưa vô mảng mới, các khóa (key) của các phần tử khi qua mảng mới vẫn giữ nguyên không cập nhật lại khóa (key), mảng gốc vẫn giữ nguyên không thay đổi.

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

$mảng_mới = array_unique($biến_mảng_gốc);

$biến_mảng_gốc: Biến của mảng gốc.

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

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

<h2>Hàm array_unique() mảng bình thường</h2>
<?php
$manggoc = array("Lực","Vân","Quỳnh","Vân","Dung");
$mangmoi  = array_unique($manggoc);
// Kết quả: Array ( [0] => Lực [1] => Vân [2] => Quỳnh [4] => Dung )
print_r($mangmoi);
?>

<h2>Hàm array_unique() mảng liên kết</h2>
<?php 
$manggoc = array("a"=>"Đỏ","b"=>"Xanh","c"=>"Đỏ","d"=>"Vàng");
$mangmoi  = array_unique($manggoc);
// Kết quả: Array ( [a] => Đỏ [b] => Xanh [d] => Vàng )
print_r($mangmoi);
?>

Kết quả:

/////Hàm array_unique() mảng bình thường
Array ( [0] => Lực [1] => Vân [2] => Quỳnh [4] => Dung )

/////Hàm array_unique() mảng liên kết
Array ( [a] => Đỏ [b] => Xanh [d] => Vàng )

Chạy Thử

Kinh nghiệm sử dụng array_unique() trong PHP hiệu quả

Khi xử lý dữ liệu dạng mảng, việc xuất hiện nhiều phần tử giống nhau là tình huống khá phổ biến. array_unique() giúp loại bỏ các giá trị trùng lặp, nhưng để sử dụng hiệu quả cần chú ý đến kiểu dữ liệu, khóa phần tử và cách tiếp tục xử lý mảng sau khi lọc.

Xử lý mảng có giá trị trùng lặp trong dữ liệu thực tế

Trong thực tế, array_unique() có thể được dùng khi cần làm sạch danh sách trước khi hiển thị hoặc lưu trữ. Chẳng hạn, một danh sách tên sản phẩm, danh mục hoặc từ khóa có thể được tổng hợp từ nhiều nguồn và chứa các giá trị lặp lại.

<?php
$keywords = ["PHP", "MySQL", "PHP", "HTML", "MySQL"];

$uniqueKeywords = array_unique($keywords);

print_r($uniqueKeywords);
?>

Kết quả chỉ giữ lại lần xuất hiện đầu tiên của mỗi giá trị. Cách này phù hợp khi mục tiêu là loại bỏ dữ liệu trùng mà không cần tự xây dựng vòng lặp kiểm tra từng phần tử.

Những trường hợp cần lưu ý khi loại bỏ phần tử trùng nhau

Một điểm dễ bỏ qua là array_unique() loại bỏ giá trị trùng nhưng không tự sắp xếp lại khóa của các phần tử còn lại. Vì vậy, mảng sau khi xử lý có thể xuất hiện các khóa không liên tiếp.

<?php
$items = ["PHP", "HTML", "PHP", "CSS"];

$items = array_unique($items);

print_r($items);
?>

Nếu cần một mảng có khóa liên tục để tiếp tục xử lý theo vị trí, có thể kết hợp thêm array_values(). Đây là bước hữu ích khi dữ liệu sau đó được duyệt bằng chỉ số hoặc chuyển sang định dạng khác.

Khi nào nên kết hợp array_unique() với các hàm xử lý mảng khác?

array_unique() nên được kết hợp với các hàm mảng khác khi dữ liệu cần trải qua nhiều bước xử lý. Ví dụ, có thể lọc những giá trị không phù hợp trước, loại bỏ phần tử trùng, sau đó đánh lại khóa để tạo ra mảng cuối cùng gọn gàng hơn.

<?php
$items = ["PHP", "", "HTML", "PHP", "CSS", ""];

$items = array_filter($items);
$items = array_unique($items);
$items = array_values($items);

print_r($items);
?>

Cách kết hợp này giúp mỗi hàm đảm nhiệm một nhiệm vụ riêng, từ đó mã nguồn dễ đọc và dễ kiểm soát hơn. Với dữ liệu lớn hoặc yêu cầu xử lý phức tạp, nên xác định rõ điều kiện lọc trước khi loại bỏ phần tử trùng để tránh làm mất những giá trị vẫn cần sử dụng.

Lời kết

Cảm ơn các bạn đã tham khảo bài viết Hàm array_unique() 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_unique() 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) !