Hướng dẫn merge array without duplicates php - hợp nhất mảng mà không có bản sao php

Xin chào, tôi đang cố gắng hợp nhất hai mảng và cũng muốn xóa các giá trị trùng lặp khỏi mảng cuối cùng.

Đây là mảng của tôi 1:

Array
    (
    [0] => stdClass Object
    (
    [ID] => 749
    [post_author] => 1
    [post_date] => 2012-11-20 06:26:07
    [post_date_gmt] => 2012-11-20 06:26:07
)

Và đây là mảng 2 của tôi:

Array
(
[0] => stdClass Object
(
[ID] => 749
[post_author] => 1
[post_date] => 2012-11-20 06:26:07
[post_date_gmt] => 2012-11-20 06:26:07

)

Tôi đang sử dụng array_merge để hợp nhất cả hai mảng thành một mảng. nó đang cung cấp đầu ra như thế này

Array
(
[0] => stdClass Object
(
[ID] => 749
[post_author] => 1
[post_date] => 2012-11-20 06:26:07
[post_date_gmt] => 2012-11-20 06:26:07

[1] => stdClass Object
(
[ID] => 749
[post_author] => 1
[post_date] => 2012-11-20 06:26:07
[post_date_gmt] => 2012-11-20 06:26:07

)

Tôi muốn loại bỏ các mục trùng lặp này hoặc tôi có thể xóa chúng trước khi hợp nhất ... lời cầu xin giúp đỡ .. cảm ơn !!!!!!!

Hướng dẫn merge array without duplicates php - hợp nhất mảng mà không có bản sao php

IMSKM

7501 Huy hiệu vàng13 Huy hiệu bạc27 Huy hiệu đồng1 gold badge13 silver badges27 bronze badges

hỏi ngày 20 tháng 11 năm 2012 lúc 9:10Nov 20, 2012 at 9:10

Hướng dẫn merge array without duplicates php - hợp nhất mảng mà không có bản sao php

Ravikumar Sharmaravikumar SharmaRavikumar Sharma

3.6084 Huy hiệu vàng34 Huy hiệu bạc56 Huy hiệu Đồng4 gold badges34 silver badges56 bronze badges

4

Như đã đề cập, Array_unique () có thể được sử dụng, nhưng chỉ khi xử lý dữ liệu đơn giản. Các đối tượng không quá đơn giản để xử lý.

Khi PHP cố gắng hợp nhất các mảng, nó cố gắng so sánh các giá trị của các thành viên mảng. Nếu một thành viên là một đối tượng, nó không thể nhận được giá trị của nó và sử dụng băm SPL thay thế. Đọc thêm về SPL_OBject_hash tại đây.

Nói một cách đơn giản nếu bạn có hai đối tượng, các trường hợp của cùng một lớp và nếu một trong số chúng không phải là tham chiếu đến người kia - bạn sẽ có hai đối tượng, bất kể giá trị của thuộc tính của chúng.

Để chắc chắn rằng bạn không có bất kỳ bản sao nào trong mảng hợp nhất, IMHO bạn nên tự mình xử lý trường hợp.

Ngoài ra, nếu bạn định hợp nhất các mảng đa chiều, hãy xem xét sử dụng Array_merge_Recursive () qua Array_merge ().

Đã trả lời ngày 20 tháng 11 năm 2012 lúc 9:20Nov 20, 2012 at 9:20

Nikola Petkanskinikola PetkanskiNikola Petkanski

4.5941 Huy hiệu vàng32 Huy hiệu bạc41 Huy hiệu đồng1 gold badge32 silver badges41 bronze badges

Nó sẽ sáp nhập hai mảng và loại bỏ trùng lặp


Hãy thử liên kết này liên kết11

Đã trả lời ngày 20 tháng 11 năm 2012 lúc 9:16Nov 20, 2012 at 9:16

DaxendaxenDaxen

5083 Huy hiệu bạc17 Huy hiệu đồng3 silver badges17 bronze badges

Cố gắng sử dụng array_unique()

Dữ liệu được nhân đôi bên trong danh sách các mảng của bạn ..

Đã trả lời ngày 20 tháng 11 năm 2012 lúc 9:15Nov 20, 2012 at 9:15

Hướng dẫn merge array without duplicates php - hợp nhất mảng mà không có bản sao php

Jhonathan H.Jhonathan H.Jhonathan H.

2.7121 Huy hiệu vàng17 Huy hiệu bạc26 Huy hiệu đồng1 gold badge17 silver badges26 bronze badges

Hợp nhất hai mảng sẽ không xóa bản sao, bạn có thể thử ví dụ dưới đây để có được độc đáo từ hai mảng

$a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow");
$a2=array("e"=>"red","f"=>"green","g"=>"blue");

$result=array_diff($a1,$a2);
print_r($result);

Đã trả lời ngày 6 tháng 9 năm 2018 lúc 9:28Sep 6, 2018 at 9:28

Kantsvermakantsvermakantsverma

54710 Huy hiệu bạc26 Huy hiệu đồng10 silver badges26 bronze badges

1

Bạn có thể sử dụng mã này để có được kết quả mong muốn. Nó sẽ loại bỏ các bản sao.

$a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow");
$a2=array("e"=>"red","f"=>"green","g"=>"blue");

$result=array_unique(array_merge($a1,$a2));

print_r($result);

Hướng dẫn merge array without duplicates php - hợp nhất mảng mà không có bản sao php

Đã trả lời ngày 29 tháng 10 năm 2020 lúc 13:21Oct 29, 2020 at 13:21

1

Giải pháp tốt nhất ở trên phải đối mặt với một vấn đề khi sử dụng cùng một khóa liên kết, Array_merge () sẽ hợp nhất các phần tử mảng với nhau khi chúng có cùng một khóa không số, vì vậy nó không phù hợp với trường hợp sau

$a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow");
$a2=array("c"=>"red","d"=>"black","e"=>"green");

Thay vào đó, nếu bạn có thể xuất ra giá trị của mình vào các khóa của mảng của bạn thay thế (ví dụ:

array_keys(array_merge($a1, $a2))

Về cơ bản, những gì mã làm là nó sử dụng hành vi của Array_merge () để loại bỏ các khóa trùng lặp và trả lại cho bạn một mảng mới với các phím làm các phần tử mảng, hy vọng nó sẽ giúp

Đã trả lời ngày 14 tháng 1 năm 2021 lúc 8:11Jan 14, 2021 at 8:11

Phantom1412Phantom1412Phantom1412

1892 Huy hiệu bạc9 Huy hiệu Đồng2 silver badges9 bronze badges

1

Làm thế nào tôi có thể hợp nhất hai mảng mà không sao chép trong PHP?

Bạn có thể sử dụng hàm php mảng_unique () và hàm php array_merge () với nhau để hợp nhất hai mảng thành một mảng mà không có giá trị trùng lặp trong PHP.use the PHP array_unique() function and PHP array_merge() function together to merge two arrays into one array without duplicate values in PHP.

Làm cách nào để hợp nhất hai mảng mà không có sự trùng lặp?

5 cách hợp nhất hai mảng và loại bỏ các bản sao trong JavaScript..
Hợp nhất các mảng và các mục khử trùng lặp bằng cách sử dụng Concat () và Filter ().
Hợp nhất mảng và các mục khử trùng lặp bằng toán tử tập hợp và lan truyền ..
Hợp nhất các mảng và các mục khử trùng lặp bằng cách sử dụng set và concat ().
Hợp nhất các mảng và các mục khử trùng lặp bằng cách sử dụng trong khi Loop và Concat ().

Làm thế nào để hợp nhất các mảng trong PHP?

Hàm php mảng_merge ()..
Hợp nhất hai mảng thành một mảng: $ a1 = mảng ("màu đỏ", "màu xanh lá cây");$ a2 = mảng ("màu xanh", "vàng");....
Hợp nhất hai mảng kết hợp thành một mảng: $ a1 = mảng ("a" => "red", "b" => "màu xanh lá cây");$ a2 = mảng ("c" => "blue", "b" => "màu vàng");....
Chỉ sử dụng một tham số mảng có các phím số nguyên: $ a = mảng (3 => "màu đỏ", 4 => "màu xanh lá cây") ;.

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);