Hướng dẫn find duplicate in array php - tìm bản sao trong mảng php

Nếu bạn cần một giải pháp sẽ hoạt động với một mảng mảng (hoặc bất kỳ giá trị mảng nào khác ngoài số nguyên hoặc chuỗi) hãy thử điều này:

function return_dup( $arr ) {
    $dups = array();
    $temp = $arr;
    foreach ( $arr as $key => $item ) {
        unset( $temp[$key] );
        if ( in_array( $item, $temp ) ) {
            $dups[] = $item;
        }
    }
    return $dups;
}


$arr = array(
    array(
        0 => 'A',
        1 => 'B',
    ),
    array(
        0 => 'A',
        1 => 'B',
    ),
    array(
        0 => 'C',
        1 => 'D',
    ),
    array(
        0 => 'C',
        1 => 'D',
    ),
    array(
        0 => 'E',
        1 => 'F',
    ),
    array(
        0 => 'F',
        1 => 'E',
    ),
    array(
        0 => 'Y',
        1 => 'Z',
    ),
);

var_export( return_dup( $arr ) );
/*
array (
    0 => array (
        0 => 'A',
        1 => 'B',
    ),
    1 => array (
        0 => 'C',
        1 => 'D',
    ),
)
*/

(Php 4> = 4.0.1, Php 5, Php 7, Php 8)

Array_unique - Xóa các giá trị trùng lặp khỏi một mảngRemoves duplicate values from an array

Sự mô tả

mảng_unique (mảng $array, int $flags = SORT_STRING): mảng(array $array, int $flags = SORT_STRING): array

Lưu ý rằng các khóa được bảo quản. Nếu nhiều phần tử so sánh bằng nhau theo flags đã cho, thì khóa và giá trị của phần tử bằng đầu tiên sẽ được giữ lại.

Lưu ý: Hai phần tử được coi là bằng nhau khi và chỉ khi (string) $elem1 === (string) $elem2 tức là khi biểu diễn chuỗi giống nhau, phần tử đầu tiên sẽ được sử dụng.: Two elements are considered equal if and only if (string) $elem1 === (string) $elem2 i.e. when the string representation is the same, the first element will be used.

Thông số

________số 8

Mảng đầu vào.

flags

Tham số thứ hai tùy chọn flags có thể được sử dụng để sửa đổi hành vi sắp xếp bằng cách sử dụng các giá trị này:

Sắp xếp các lá cờ:

  • Array
    (
        [a] => green
        [0] => red
        [1] => blue
    )
    
    1 - So sánh các mục bình thường (không thay đổi loại)
    - compare items normally (don't change types)
  • Array
    (
        [a] => green
        [0] => red
        [1] => blue
    )
    
    2 - So sánh các mục bằng số
    - compare items numerically
  • SORT_STRING - So sánh các mục dưới dạng chuỗi - compare items as strings
  • Array
    (
        [a] => green
        [0] => red
        [1] => blue
    )
    
    4 - So sánh các mục dưới dạng chuỗi, dựa trên địa phương hiện tại.
    - compare items as strings, based on the current locale.

Trả về giá trị

Trả về mảng được lọc.

Thay đổi

Phiên bảnSự mô tả
7.2.0 mảng_unique (mảng $array, int $flags = SORT_STRING): mảngSORT_STRING, formerly array has been copied and non-unique elements have been removed (without packing the array afterwards), but now a new array is built by adding the unique elements. This can result in different numeric indexes.

Lưu ý rằng các khóa được bảo quản. Nếu nhiều phần tử so sánh bằng nhau theo flags đã cho, thì khóa và giá trị của phần tử bằng đầu tiên sẽ được giữ lại.

Lưu ý: Hai phần tử được coi là bằng nhau khi và chỉ khi (string) $elem1 === (string) $elem2 tức là khi biểu diễn chuỗi giống nhau, phần tử đầu tiên sẽ được sử dụng.array_unique() example

Array
(
    [a] => green
    [0] => red
    [1] => blue
)
8

Thông số

Array
(
    [a] => green
    [0] => red
    [1] => blue
)

________số 8array_unique() and types

Array
(
    [a] => green
    [0] => red
    [1] => blue
)
9

Thông số

array(2) {
  [0] => int(4)
  [2] => string(1) "3"
}

________số 8

Mảng đầu vào.: Note that array_unique() is not intended to work on multi dimensional arrays.

flags

Tham số thứ hai tùy chọn flags có thể được sử dụng để sửa đổi hành vi sắp xếp bằng cách sử dụng các giá trị này:

array(2) {
  [0] => int(4)
  [2] => string(1) "3"
}
0

array(2) {
  [0] => int(4)
  [2] => string(1) "3"
}
1

array(2) {
  [0] => int(4)
  [2] => string(1) "3"
}
2

array(2) {
  [0] => int(4)
  [2] => string(1) "3"
}
3

array(2) {
  [0] => int(4)
  [2] => string(1) "3"
}
4

array(2) {
  [0] => int(4)
  [2] => string(1) "3"
}
5

Sắp xếp các lá cờ:

Array
(
    [a] => green
    [0] => red
    [1] => blue
)
1 - So sánh các mục bình thường (không thay đổi loại)

array(2) {
  [0] => int(4)
  [2] => string(1) "3"
}
6

array(2) {
  [0] => int(4)
  [2] => string(1) "3"
}
7

array(2) {
  [0] => int(4)
  [2] => string(1) "3"
}
8

array(2) {
  [0] => int(4)
  [2] => string(1) "3"
}
9

Array
(
    [a] => green
    [0] => red
    [1] => blue
)
2 - So sánh các mục bằng số

SORT_STRING - So sánh các mục dưới dạng chuỗi

$array0

$array1

$array2

$array3

Array
(
    [a] => green
    [0] => red
    [1] => blue
)
4 - So sánh các mục dưới dạng chuỗi, dựa trên địa phương hiện tại.

Trả về giá trị

$array4

$array5

$array6

$array7

$array8

$array9

Trả về mảng được lọc.

Thay đổi

$flags0

$flags1

$array9

Phiên bản

Array
(
    [a] => green
    [0] => red
    [1] => blue
)
1 - So sánh các mục bình thường (không thay đổi loại)

$flags3

$flags4

$flags5

$flags6

Array
(
    [a] => green
    [0] => red
    [1] => blue
)
2 - So sánh các mục bằng số

Thay đổi

$flags7

$flags8

$array9

Phiên bản

Nếu flagsSORT_STRING, trước đây là array đã được sao chép và các yếu tố không duy nhất đã được gỡ bỏ (mà không đóng gói mảng sau đó), nhưng bây giờ một mảng mới được xây dựng bằng cách thêm các yếu tố duy nhất. Điều này có thể dẫn đến các chỉ số số khác nhau.

SORT_STRING0

SORT_STRING1

SORT_STRING2

$array9

Ví dụ

Ví dụ #1 Array_unique () Ví dụ

SORT_STRING4

SORT_STRING5

SORT_STRING6

SORT_STRING7

Ví dụ trên sẽ xuất ra:

Trả về giá trị

SORT_STRING8

SORT_STRING9

$array9

Trả về mảng được lọc.

Thay đổi

flags1

flags2

flags3

flags4

Phiên bản

SORT_STRING - So sánh các mục dưới dạng chuỗi

flags5

flags6

flags7

flags8

Array
(
    [a] => green
    [0] => red
    [1] => blue
)
4 - So sánh các mục dưới dạng chuỗi, dựa trên địa phương hiện tại.

Trả về giá trị

flags9

(string) $elem1 === (string) $elem20

(string) $elem1 === (string) $elem21

(string) $elem1 === (string) $elem22

Trả về mảng được lọc.

Nếu flagsSORT_STRING, trước đây là array đã được sao chép và các yếu tố không duy nhất đã được gỡ bỏ (mà không đóng gói mảng sau đó), nhưng bây giờ một mảng mới được xây dựng bằng cách thêm các yếu tố duy nhất. Điều này có thể dẫn đến các chỉ số số khác nhau.

(string) $elem1 === (string) $elem23

(string) $elem1 === (string) $elem24

(string) $elem1 === (string) $elem25

(string) $elem1 === (string) $elem26

Ví dụ

Tham số thứ hai tùy chọn flags có thể được sử dụng để sửa đổi hành vi sắp xếp bằng cách sử dụng các giá trị này:

(string) $elem1 === (string) $elem27

(string) $elem1 === (string) $elem28

(string) $elem1 === (string) $elem29

array0

$array9

Sắp xếp các lá cờ:

Thay đổi

array2

array3

$array9

Phiên bản

Array
(
    [a] => green
    [0] => red
    [1] => blue
)
1 - So sánh các mục bình thường (không thay đổi loại)

array5

array6

$array9

Array
(
    [a] => green
    [0] => red
    [1] => blue
)
2 - So sánh các mục bằng số

SORT_STRING - So sánh các mục dưới dạng chuỗi

array8

array9

flags0

flags1

$array9

Array
(
    [a] => green
    [0] => red
    [1] => blue
)
4 - So sánh các mục dưới dạng chuỗi, dựa trên địa phương hiện tại.

Trả về giá trị

flags3

flags4

flags5

flags6

Trả về mảng được lọc.

SORT_STRING - So sánh các mục dưới dạng chuỗi

flags7

flags8

flags9

$array9

Array
(
    [a] => green
    [0] => red
    [1] => blue
)
4 - So sánh các mục dưới dạng chuỗi, dựa trên địa phương hiện tại.

Trả về giá trị

Array
(
    [a] => green
    [0] => red
    [1] => blue
)
01

Array
(
    [a] => green
    [0] => red
    [1] => blue
)
02

Array
(
    [a] => green
    [0] => red
    [1] => blue
)
03

$array9

Trả về mảng được lọc.

Thay đổi

Array
(
    [a] => green
    [0] => red
    [1] => blue
)
05

$flags4

Array
(
    [a] => green
    [0] => red
    [1] => blue
)
07

Array
(
    [a] => green
    [0] => red
    [1] => blue
)
08

Phiên bản

Nếu flagsSORT_STRING, trước đây là array đã được sao chép và các yếu tố không duy nhất đã được gỡ bỏ (mà không đóng gói mảng sau đó), nhưng bây giờ một mảng mới được xây dựng bằng cách thêm các yếu tố duy nhất. Điều này có thể dẫn đến các chỉ số số khác nhau.

Array
(
    [a] => green
    [0] => red
    [1] => blue
)
09

$flags4

Array
(
    [a] => green
    [0] => red
    [1] => blue
)
11

Array
(
    [a] => green
    [0] => red
    [1] => blue
)
12

Ví dụ

SORT_STRING - So sánh các mục dưới dạng chuỗi

Array
(
    [a] => green
    [0] => red
    [1] => blue
)
13

Array
(
    [a] => green
    [0] => red
    [1] => blue
)
4 - So sánh các mục dưới dạng chuỗi, dựa trên địa phương hiện tại.

Thay đổi

Array
(
    [a] => green
    [0] => red
    [1] => blue
)
14

Array
(
    [a] => green
    [0] => red
    [1] => blue
)
15

Array
(
    [a] => green
    [0] => red
    [1] => blue
)
16

Array
(
    [a] => green
    [0] => red
    [1] => blue
)
17

Phiên bản

Thay đổi

Array
(
    [a] => green
    [0] => red
    [1] => blue
)
18

Array
(
    [a] => green
    [0] => red
    [1] => blue
)
19

Array
(
    [a] => green
    [0] => red
    [1] => blue
)
20

Array
(
    [a] => green
    [0] => red
    [1] => blue
)
21

Phiên bản

Nếu flagsSORT_STRING, trước đây là array đã được sao chép và các yếu tố không duy nhất đã được gỡ bỏ (mà không đóng gói mảng sau đó), nhưng bây giờ một mảng mới được xây dựng bằng cách thêm các yếu tố duy nhất. Điều này có thể dẫn đến các chỉ số số khác nhau.

Array
(
    [a] => green
    [0] => red
    [1] => blue
)
22

Array
(
    [a] => green
    [0] => red
    [1] => blue
)
23

$array9

Ví dụ

Nếu flagsSORT_STRING, trước đây là array đã được sao chép và các yếu tố không duy nhất đã được gỡ bỏ (mà không đóng gói mảng sau đó), nhưng bây giờ một mảng mới được xây dựng bằng cách thêm các yếu tố duy nhất. Điều này có thể dẫn đến các chỉ số số khác nhau.

Array
(
    [a] => green
    [0] => red
    [1] => blue
)
25

Array
(
    [a] => green
    [0] => red
    [1] => blue
)
26

Array
(
    [a] => green
    [0] => red
    [1] => blue
)
27

Array
(
    [a] => green
    [0] => red
    [1] => blue
)
28

$array9

Làm thế nào để bạn tìm thấy các giá trị trùng lặp trong một mảng?

hàm CheckIfArrayIsUnique (myArray) {for (var i = 0; i

Làm thế nào để bạn tìm thấy các số trùng lặp trong một mảng nếu nó chứa nhiều bản sao PHP?

PHP nhận các phím trùng lặp trong mảng mà không sử dụng chức năng sẵn có ..
Kiểm tra PHP nếu tất cả các giá trị mảng là như nhau ..
Mục nhập trùng lặp '0' cho khóa 'chính' PHP chính ..
Cách tìm kiếm hai kim trong một mảng in_array PHP ..
Php Array_Push in foreach trùng lặp ..

Việc sử dụng Array_unique trong PHP là gì?

Hàm mảng_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, sự xuất hiện đầu tiên sẽ được giữ và giá trị còn lại sẽ được gỡ bỏ.Lưu ý: Mảng trả về sẽ giữ loại khóa của Mảng đầu tiên.removes duplicate values from an array. If two or more array values are the same, the first appearance will be kept and the other will be removed. Note: The returned array will keep the first array item's key type.

Làm thế nào tôi có thể nhận được các giá trị duy nhất từ hai mảng trong PHP?

Hàm mảng_diff () (thủ công) có thể được sử dụng để tìm sự khác biệt giữa hai mảng: $ mảng1 = mảng (10, 20, 40, 80);$ mảng2 = mảng (10, 20, 100, 200);$ diff = mảng_diff ($ mảng1, $ mảng2);// $ diff = mảng (40, 80, 100, 200);array_diff() (manual) function can be used to find the difference between two arrays: $array1 = array(10, 20, 40, 80); $array2 = array(10, 20, 100, 200); $diff = array_diff($array1, $array2); // $diff = array(40, 80, 100, 200);