Nhận các giá trị trùng lặp trong mảng PHP

Ở đây chúng ta sẽ học cách lọc các giá trị trùng lặp bằng cách lưu trữ các phần tử mảng đã cho dưới dạng khóa mà không cần sử dụng hàm sẵn có của PHP. Hãy tìm hiểu cách thực hiện với mã ví dụ sau

$givenArray = array(2,5,2,10,4,5,8,16);

$uniqueArry = array();
 
foreach($givenArray as $val) { 
    
   $uniqueArry[$val] = $val;
   
}
print_r($uniqueArry);

đầu ra

Array ( [2] => 2 [5] => 5 [10] => 10 [4] => 4 [8] => 8 [16] => 16 )

giải thích mã

  • Lặp qua một mảng các phần tử đã cho có chứa các giá trị trùng lặp
  • Khai báo duy nhấtArry
  • Duyệt mảng bằng vòng lặp for. Trong quá trình lặp qua các phần tử mảng, giá trị của phần tử hiện tại được gán cho khóa & giá trị cho mảng mới được xác định là uniqueArry
  • Không cho phép lưu key trùng lặp trong mảng giúp tránh hiện tượng xuất hiện nhiều phần tử và chỉ giữ lại một giá trị

Phương thức array_unique() được sử dụng để loại bỏ các giá trị lặp lại hoặc trùng lặp khỏi mảng và trả về một mảng

Tốt hơn nên sử dụng phương pháp này trên mảng nếu có khả năng các giá trị giống nhau hoặc mã sau này trong chương trình phụ thuộc vào nó chẳng hạn – chọn bản ghi dựa trên id và hiển thị chúng trên màn hình

Trong hướng dẫn này, tôi chỉ cho bạn cách xóa các giá trị trùng lặp khỏi –

  • Một chỉ mục,
  • mảng kết hợp và
  • Xóa chỉ mục theo tên khóa trong mảng kết hợp

Nhận các giá trị trùng lặp trong mảng PHP


nội dung


1. Xóa giá trị trùng lặp khỏi Mảng được lập chỉ mục

Xác định một mảng

Array ( [2] => 2 [5] => 5 [10] => 10 [4] => 4 [8] => 8 [16] => 16 )
7 nơi tôi cũng đã thêm một số số trùng lặp

Truyền mảng trong phương thức

Array ( [2] => 2 [5] => 5 [10] => 10 [4] => 4 [8] => 8 [16] => 16 )
8 để loại bỏ các giá trị trùng lặp

Ví dụ

";
print_r($num_arr);
echo "
"; echo "After remove duplicate"; echo "
";
print_r($num_unique);
echo "
";

đầu ra

Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 1
    [4] => 6
    [5] => 1
    [6] => 23
    [7] => 2
)
After remove duplicate
Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [4] => 6
    [6] => 23
)

2. Xóa giá trị trùng lặp khỏi Mảng kết hợp

Xác định một mảng kết hợp

Array ( [2] => 2 [5] => 5 [10] => 10 [4] => 4 [8] => 8 [16] => 16 )
9 với các khóa tên và tuổi

Bằng cách gọi phương thức

Array ( [2] => 2 [5] => 5 [10] => 10 [4] => 4 [8] => 8 [16] => 16 )
8, nó sẽ xóa các chỉ mục có giá trị khóa tên và tuổi phổ biến

LƯU Ý – Tôi đã chuyển

Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 1
    [4] => 6
    [5] => 1
    [6] => 23
    [7] => 2
)
After remove duplicate
Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [4] => 6
    [6] => 23
)
0 làm tham số thứ hai trong phương thức
Array ( [2] => 2 [5] => 5 [10] => 10 [4] => 4 [8] => 8 [16] => 16 )
8

Ví dụ

 "Yogesh Singh","age"=>24);
$student_arr[] = array("name" => "Sonarika Bhadoria","age"=>24);
$student_arr[] = array("name" => "Anil Singh","age" => 23);
$student_arr[] = array("name" => "Yogesh Singh","age" => 24);

$student_arr1 = array_unique($student_arr,SORT_REGULAR);

echo "
";
print_r($student_arr);
echo "
"; echo "After remove duplicate"; echo "
";
print_r($student_arr1);
echo "
";

đầu ra

Array
(
    [0] => Array
        (
            [name] => Yogesh Singh
            [age] => 24
        )
    [1] => Array
        (
            [name] => Sonarika Bhadoria
            [age] => 24
        )
    [2] => Array
        (
            [name] => Anil Singh
            [age] => 23
        )
    [3] => Array
        (
            [name] => Yogesh Singh
            [age] => 24
        )
)
After remove duplicate
Array
(
    [0] => Array
        (
            [name] => Yogesh Singh
            [age] => 24
        )
    [1] => Array
        (
            [name] => Sonarika Bhadoria
            [age] => 24
        )
    [2] => Array
        (
            [name] => Anil Singh
            [age] => 23
        )
)

3. Xóa theo khóa khỏi Mảng liên kết

Xác định một mảng kết hợp

Array ( [2] => 2 [5] => 5 [10] => 10 [4] => 4 [8] => 8 [16] => 16 )
9

Tạo hàm

Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 1
    [4] => 6
    [5] => 1
    [6] => 23
    [7] => 2
)
After remove duplicate
Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [4] => 6
    [6] => 23
)
3 lấy một mảng và tên khóa để loại bỏ các chỉ mục trùng lặp

Trong chức năng này, lặp trên

Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 1
    [4] => 6
    [5] => 1
    [6] => 23
    [7] => 2
)
After remove duplicate
Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [4] => 6
    [6] => 23
)
4 và kiểm tra xem
Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 1
    [4] => 6
    [5] => 1
    [6] => 23
    [7] => 2
)
After remove duplicate
Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [4] => 6
    [6] => 23
)
5 có được đặt trên
Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 1
    [4] => 6
    [5] => 1
    [6] => 23
    [7] => 2
)
After remove duplicate
Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [4] => 6
    [6] => 23
)
6 hay không. Nếu không được đặt thì chỉ định
Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 1
    [4] => 6
    [5] => 1
    [6] => 23
    [7] => 2
)
After remove duplicate
Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [4] => 6
    [6] => 23
)
7 trong
Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 1
    [4] => 6
    [5] => 1
    [6] => 23
    [7] => 2
)
After remove duplicate
Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [4] => 6
    [6] => 23
)
8

Lập chỉ mục lại

Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 1
    [4] => 6
    [5] => 1
    [6] => 23
    [7] => 2
)
After remove duplicate
Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [4] => 6
    [6] => 23
)
6 với array_values() và trả về

Ví dụ

Array ( [2] => 2 [5] => 5 [10] => 10 [4] => 4 [8] => 8 [16] => 16 )
4

đầu ra

Array ( [2] => 2 [5] => 5 [10] => 10 [4] => 4 [8] => 8 [16] => 16 )
5

4. Kết luận

Truyền mảng của bạn vào phương thức array_unique() để xóa các giá trị phổ biến mà nó hoạt động với cả mảng được lập chỉ mục và mảng kết hợp

Nếu bạn muốn xóa chỉ mục mảng theo tên khóa trong liên kết thì bạn có thể sử dụng hàm

Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 1
    [4] => 6
    [5] => 1
    [6] => 23
    [7] => 2
)
After remove duplicate
Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [4] => 6
    [6] => 23
)
3 đã tạo ở trên và tùy chỉnh nó theo sở thích của bạn

Làm cách nào để kiểm tra các giá trị trùng lặp trong mảng PHP?

Hàm array_unique() loại bỏ các giá trị trùng lặp khỏi một mảng . Nếu hai hoặc nhiều giá trị mảng giống nhau, thì giá trị đầu tiên sẽ được giữ lại và giá trị còn lại sẽ bị xóa. Ghi chú. Mảng được trả về sẽ giữ loại khóa của mục mảng đầu tiên.

Làm cách nào để tìm bản sao trong PHP?

Một bản sao đối tượng được tạo bằng cách sử dụng từ khóa clone (từ khóa này gọi phương thức __clone() của đối tượng nếu có thể). $copy_of_object = bản sao $object; . Bất kỳ thuộc tính nào là tham chiếu đến các biến khác sẽ vẫn là tham chiếu.

Làm cách nào để tìm giá trị trùng lặp trong mảng kết hợp PHP?

I sử dụng array_column và array_count_values ​​để biết chúng xuất hiện bao nhiêu lần trong mảng, sau đó array_diff xóa các giá trị duy nhất . Tôi lặp lại các bản sao và tìm giá tối đa được liên kết với bản sao và lưu chúng vào một mảng kết hợp.

Array_diff_assoc trong PHP là gì?

Hàm array_diff_assoc() so sánh khóa và giá trị của hai (hoặc nhiều) mảng và trả về sự khác biệt . Hàm này so sánh các khóa và 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 không có trong mảng2 hoặc mảng3, v.v.