Làm cách nào để nhận các giá trị mảng duy nhất bằng hàm PHP Array_unique?

Tiếp tục đọc để tạo một hệ thống kiểm tra danh tính không cho phép nhiều mục nhập mảng dựa trên các giá trị lặp lại

nội dung

PHP array_unique là gì?

Hàm PHP array_unique chấp nhận một mảng, loại bỏ tất cả các giá trị trùng lặp của nó và trả về mảng. Sẽ rất hữu ích nếu bạn lưu ý rằng các khóa của các giá trị duy nhất sẽ được giữ nguyên. Vì vậy, chức năng đã cho dễ sử dụng như giấy lọc tùy chỉnh chỉ cho phép các giá trị duy nhất được tìm thấy đầu tiên đi qua nó.

Bây giờ, hãy xem cú pháp của nó. array_unique(mảng, cờ) . Ở đây, tham số cờ là tùy chọn và giá trị mặc định của nó được đặt thành “SORT_STRING,” có nghĩa là các giá trị mảng sẽ được so sánh dưới dạng chuỗi.

Ngoài ra, bạn có thể sử dụng các cờ sau để tùy chỉnh so sánh

  • SORT_REGULAR. Nó không thay đổi kiểu dữ liệu của các giá trị mảng
  • SORT_NUMERIC. Nó thay đổi các giá trị mảng thành số nguyên trước khi so sánh chúng
  • SORT_LOCALE_STRING. Nó so sánh các giá trị mảng dưới dạng chuỗi theo ngôn ngữ hiện tại

– Ví dụ mã hóa

Ví dụ: giả sử rằng chương trình của bạn chứa một mảng có thể chứa các giá trị trùng lặp. Vì vậy, ở đây bạn sẽ sử dụng hàm duy nhất của mảng để loại bỏ các bản sao khỏi mảng PHP giống như đoạn mã được cung cấp bên dưới

//tạo mảng động vật$animals = array(“Mèo”,”Chó”,”Hổ”,
// tạo mảng động vật
$animals = array(“Mèo”,”Chó”,”Hổ”,”Sư tử”,”Mèo”);
// using the PHP array_unique function and printing the unique array
print_r(array_unique($animals));
?>

Đầu ra sau đây sẽ được hiển thị trên trình duyệt của bạn

Mảng ( [0] => Mèo [1] => Chó [2] => Hổ [3] => Sư tử )

Array_unique trong PHP. Làm việc với các mảng kết hợp

Chức năng của hàm duy nhất mảng PHP có thay đổi khi bạn sử dụng nó với một mảng kết hợp không?

– Ví dụ mã hóa cho mảng PHP_unique với mảng kết hợp

Ví dụ: bạn có một mảng kết hợp gồm các loại trái cây nhưng có khả năng mảng đó có thể chứa các tên trái cây giống nhau nhiều lần. Vì vậy, trong tình huống này, bạn sẽ sử dụng hàm duy nhất mảng PHP để lấy một mảng các tên trái cây duy nhất

Vui lòng tham khảo đoạn mã ví dụ sau về hàm duy nhất của mảng PHP

?php
// tạo mảng trái cây
$fruits = array(
“One” =
“Two” => “Apple”,
“Three” => “Strawberry”,
“Four” => “Pineapple”,
“Two” => “Apple”,          // duplicate value
“Five” => “Mango”,        // duplicate value
);
// using the PHP array_unique function and printing the unique array
print_r(array_unique($fruits));
?>

Đây là đầu ra mà bạn sẽ nhận được

Mảng ( [Một] => Xoài [Hai] => Táo [Ba] => Dâu [Bốn] => Dứa )

Giá trị duy nhất của mảng PHP. Mảng đa chiều

Hàm duy nhất của mảng PHP có thể giúp xử lý sự trùng lặp trong các mảng nhiều chiều không? . Tạo một hàm do người dùng xác định có thể giúp bạn loại bỏ các mảng trùng lặp khỏi mảng chính dựa trên một khóa cụ thể. Tuy nhiên, hãy nhớ rằng các khóa của mảng ban đầu sẽ không được giữ nguyên

– Ví dụ mã hóa

Ví dụ, có thể xảy ra trường hợp bạn có một mảng nhiều chiều chứa thông tin chi tiết về nhân viên. Bây giờ, bạn muốn xóa toàn bộ mảng bên trong nếu khóa id của nó có giá trị trùng lặp. Vì vậy, bạn sẽ tạo một hàm tùy chỉnh chấp nhận một mảng và một khóa. Hàm tùy chỉnh sử dụng vòng lặp foreachhàm in_array() để .

Bây giờ, hãy xem đoạn mã này sẽ giúp bạn hiểu ví dụ này dễ dàng hơn

//tạo mảng chi tiết nhân viên$emp = array(array( . in_array($val[$key], $array_of_keys)) {$array_of_keys[$i] = $val[$key];$Myarray[$
// creating an array of employee details
$emp = array(
array(“id” => 1,”Position” => “Manager”,”Date” => “01-June-2020”),
array(“id” => 2,”Position” => “IT Incharge”, “Date” => “02-July-2020”),
array(“id” => 3,”Position” => “Accountant”,”Date” => “02-July-2020”),
array(“id” => 1,”Position” => “HR”, “Date” => “03-June-2020”),
);
// creating a custom function
function multi_unique_array($arr, $key) {
$Myarray = array();
$i = 0;
$array_of_keys = array();
foreach($arr as $val) {
if (!in_array($val[$key], $array_of_keys)) {
$array_of_keys[$i] = $val[$key];
$Myarray[$i] = $val;
}
$i++;
}
return $Myarray;
}
// calling the custom function with array and id key
$unique = multi_unique_array($emp,”id”);
// printing the multidimensional array with unique ids
print_r($unique);
?>

Bạn sẽ nhận được kết quả bên dưới sau khi chạy đoạn mã trên

Mảng (
[0] => Mảng ( [id] => 1 [Vị trí] => Người quản lý [Ngày] => 01-Tháng 6-2020 )
[1] => Array ( [id] => 2 [Position] => IT Incharge [Date] => 02-July-2020 )
[2] => Array ( [id] => 3 [Position] => Accountant [Date] => 02-July-2020 )
)

- Ghi chú

Không cần thiết phải có một mảng nhiều chiều với các khóa được đặt tên để sử dụng chức năng trên. Bạn có thể chỉ cần chuyển “0” làm đối số thứ hai để xóa tất cả các mảng bên trong chứa ngay cả một giá trị trùng lặp

Mảng PHP Xóa trùng lặp. Chỉ các mảng lặp đi lặp lại

Chắc chắn, các mảng bên trong của một mảng nhiều chiều có thể không chứa tất cả các giá trị trùng lặp. Ngoài ra, có thể xảy ra trường hợp bạn không muốn xóa các mảng bên trong dựa trên một giá trị trùng lặp duy nhất như đã thảo luận trong ví dụ trên

Trong trường hợp đó, bạn có muốn kiểm tra tất cả các giá trị của các mảng bên trong trước khi xóa chúng không?

Vậy thì đừng lo lắng;

– Ví dụ mã hóa

Ví dụ: giả sử bạn có một mảng sinh viên đa chiều, trong đó mỗi mảng bên trong bao gồm hai giá trị đại diện cho id sinh viên và chủ đề. Tại đây, một sinh viên có thể học nhiều môn. Hơn nữa, cùng một chủ đề có thể được lựa chọn bởi các sinh viên khác nhau. Vì vậy, bạn chỉ muốn xóa những mảng bên trong bị trùng lặp hoàn toàn

Vui lòng xem đoạn mã ví dụ được đưa ra bên dưới

$student = array(array(“std1″,”English”),$array3[] = $val;$Myarray[] = $val;
$student = array(
array(“std1″,”English”),
array(“std1″,”Physics”),
array(“std2″,”English”),
array(“std2″,”Chemistry”),
array(“std2″,”Physics”),
array(“std3″,”English”),
array(“std2″,”English”), // duplicate
array(“std3″,”Sociology”),
array(“std3″,”Sociology”),     // duplicate
array(“std4″,”English”),
array(“std1″,”Physics”), // duplicate
array(“std4″,”Chemistry”)
);
// creating a custom function
function multi_unique($array) {
$Myarray = array();
$array3 = array();
foreach($array as $val) {
if (!in_array($val, $array3)) {
$array3[] = $val;
$Myarray[] = $val;
}
}
return $Myarray;
}
$res = multi_unique($student);
print_r($res);
?>

Đây sẽ là đầu ra hiển thị trên trình duyệt

Mảng (
[0] => Mảng ( [0] => std1 [1] => Tiếng Anh)
[1] =>
[2] => Array ( [0] => std2 [1] => English )
[3] => Array ( [0] => std2 [1] => Chemistry )
[4] => Array ( [0] => std2 [1] => Physics )
[5] => Array ( [0] => std3 [1] => English )
[6] => Array ( [0] => std3 [1] => Sociology )
[7] => Array ( [0] => std4 [1] => English )
[8] => Array ( [0] => std4 [1] => Chemistry )
)

- Ghi chú

Hàm tùy chỉnh được sử dụng trong đoạn mã trên sẽ không bảo toàn các khóa của mảng ban đầu. Nếu bạn muốn bảo quản các phím thì hãy thử phương pháp sau

Nhận các giá trị duy nhất từ ​​​​mảng. Sử dụng hàm mảng

Mặc dù các hàm do người dùng định nghĩa giúp lấy các giá trị duy nhất từ ​​các mảng nhiều chiều, nhưng việc duy trì các khóa cũng có thể là một nhiệm vụ quan trọng. Do đó, sự kết hợp của các hàm mảng như array_intersect_key, PHP array_unique và array_map có thể giúp giải quyết vấn đề. Tuy nhiên, bạn sẽ không thể xóa các mảng bên trong dựa trên một khóa cụ thể bằng cách sử dụng kết hợp đã nêu

– Ví dụ mã hóa để sử dụng mảng PHP duy nhất với các chức năng khác

Làm việc trên cùng một kịch bản với ví dụ trước, đây là đoạn mã sẽ giúp bạn bảo quản các khóa

$get_unique = array_intersect_key($student , array_unique(array_map('serialize' , $student)));print_r(
$get_unique = array_intersect_key($student , array_unique(array_map(‘serialize’ , $student)));
print_r($get_unique);
?>

Đây sẽ là đầu ra

Mảng (
[0] => Mảng ( [0] => std1 [1] => Tiếng Anh)
[1] =>
[2] => Array ( [0] => std2 [1] => English )
[3] => Array ( [0] => std2 [1] => Chemistry )
[4] => Array ( [0] => std2 [1] => Physics )
[5] => Array ( [0] => std3 [1] => English )
[7] => Array ( [0] => std3 [1] => Sociology )
[9] => Array ( [0] => std4 [1] => English )
[11] => Array ( [0] => std4 [1] => Chemistry )
)

Phần kết luận

Hàm duy nhất của mảng PHP giúp nhận các giá trị duy nhất từ ​​cả mảng được lập chỉ mục và mảng kết hợp. Hơn nữa, nó hoạt động với các hàm mảng khác để xử lý sự trùng lặp trong mảng nhiều chiều. Mặc dù bạn đã học đủ về cách làm cho mảng trở nên độc đáo, đây là một vài điểm quan trọng để giúp bạn hiểu rõ hơn về chủ đề này

  • Hàm duy nhất của mảng PHP chấp nhận một mảng và loại bỏ tất cả các giá trị trùng lặp khỏi mảng đó trong khi vẫn giữ nguyên các khóa
  • Mảng PHP unique trả về một mảng với các giá trị duy nhất
  • Bạn có thể sử dụng tham số cờ tùy chọn để thay đổi loại giá trị trước khi so sánh chúng
  • Giá trị mặc định cho tham số cờ được đặt thành SORT_STRING
  • Hàm duy nhất mảng PHP không hoạt động với mảng nhiều chiều
  • Bạn có thể tạo một hàm do người dùng xác định để loại bỏ sự trùng lặp khỏi các mảng nhiều chiều dựa trên một khóa cụ thể
  • Một hàm do người dùng định nghĩa có thể giúp lấy các giá trị duy nhất từ ​​các mảng nhiều chiều mà không cần xem xét các khóa
  • Bạn có thể sử dụng hàm mảng duy nhất PHP cùng với các hàm mảng khác để nhận các giá trị duy nhất từ ​​một mảng nhiều chiều trong khi vẫn giữ nguyên các khóa

Làm cách nào để nhận các giá trị mảng duy nhất bằng hàm PHP Array_unique?
Thông qua hướng dẫn của chúng tôi, giờ đây, bạn có thể xóa ngay các giá trị trùng lặp khỏi mảng mà không gặp bất kỳ khó khăn nào

5/5 - (21 phiếu)

Làm cách nào để nhận các giá trị mảng duy nhất bằng hàm PHP Array_unique?

Vị trí là tất cả

Vị trí là tất cả. Tài nguyên Go-To của bạn để Tìm hiểu & Xây dựng. CSS, JavaScript, HTML, PHP, C++ và MYSQL

Làm cách nào để nhận các giá trị duy nhất trong mảng PHP?

The array_unique() là một hàm tích hợp sẵn trong PHP và hàm này loại bỏ các giá trị trùng lặp khỏi một mảng. Nếu có nhiều phần tử trong mảng có cùng giá trị thì phần tử xuất hiện đầu tiên sẽ được giữ lại và tất cả các lần xuất hiện khác của phần tử này sẽ bị xóa khỏi mảng.

Làm cách nào để lấy cùng một giá trị trong mảng trong PHP?

Hàm array_intersect() so sánh giá trị của hai (hoặc nhiều) mảng và trả về kết quả khớp. Hàm này so sánh các giá trị của hai hoặc nhiều mảng và trả về một mảng chứa các mục từ mảng1 có trong mảng2, mảng3, v.v.

Cách lấy giá trị duy nhất từ ​​mảng đa chiều trong PHP?

Giải thích. .
array_unique – chỉ hoạt động với mảng một chiều
Do đó, chuyển đổi mảng nhiều chiều thành một chiều với cột bắt buộc chỉ sử dụng array_column. .
Giờ đây, việc áp dụng array_unique thật dễ dàng và mang lại kết quả. Mảng ( [0] => 111 [1] => 222 [2] => 333 )