Php tìm các bản sao trong chuỗi

Trong bài đăng này, chúng ta sẽ xem cách loại bỏ các bản sao khỏi một mảng trong PHP. Hai phần tử được coi là bằng nhau khi và chỉ khi biểu diễn chuỗi giống nhau

1. Loại bỏ các bản sao bằng hàm array_unique()

Giải pháp tiêu chuẩn để loại bỏ các giá trị trùng lặp khỏi một mảng là sử dụng hàm array_unique() , hàm này lấy một mảng và trả về một mảng mới .

Đoạn mã sau chứng minh điều này

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

    $arr = [1, 2, 3, 2, 4];

 

    $distinct = array_unique($arr);

    print_r($distinct);

 

    /* Đầu ra.

 

Mảng

(

[0] => 1

[1] => 2

[2] => 3

[4] => 4

)

*/

?>

Tải xuống Chạy mã

 
Đối với mảng kết hợp, khóa của phần tử bằng đầu tiên sẽ được giữ lại, như minh họa bên dưới.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

    $arr = mảng("a" => "green", "b" => "blue", "c" => "red", "d" => "green");

 

    $distinct = array_unique($arr);

    print_r($distinct);

 

    /* Đầu ra.

 

Mảng

(

[a] => xanh

[b] => màu xanh

[c] => đỏ

)

*/

?>

Tải xuống Chạy mã

 
Đối với mảng có kiểu khác nhau, nếu chuỗi biểu diễn hai phần tử giống nhau thì phần tử đầu tiên được sử dụng.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

    $arr = mảng(1, "1", "2", 1, 2, "2");

 

    $distinct = array_unique($arr);

    var_dump($distinct);

 

    /* Đầu ra.

 

mảng(2) {

[0]=>

int(1)

[2]=>

chuỗi (1) "2"

}

 

*/

?>

Tải xuống Chạy mã

2. Tìm các bản sao bằng hàm array_diff_key()

Để tìm các giá trị trùng lặp, bạn có thể sử dụng hàm array_diff_key() để tính toán sự khác biệt của các mảng bằng cách sử dụng các phím để so sánh.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

    $arr = [1, 2, 3, 2, 4];

 

    $distinct = array_unique($arr);

    $duplicates = array_diff_key($arr, $distinct);

    print_r($duplicates);

 

    /* Đầu ra.

 

Mảng

(

[3] => 2

)

*/

?>

Tải xuống Chạy mã

Đó là tất cả về việc loại bỏ các bản sao khỏi một mảng trong PHP