Hàm gộp mảng merge_array trong php

Các +bên điều hành có sự kết hợp của nhì mảng, trong khi array_mergechức năng mất đoàn NHƯNG những phím trùng lặp được ghi đtrần.

Bạn đang xem: Hàm gộp mảng merge_array trong php


Vì vậy, sự khác hoàn toàn thân 2: array_merge , vết cùng (tuy nhiên tôi vẫn đề xuất biến đổi bao phủ các mảng)?
Một lời lưu ý cho người new bắt đầu tại đây, kết quả của phép toán trong cả hai ngôi trường vừa lòng là null giả dụ bất kỳ một trong số mảng là rỗng . Một số rất có thể không quyên tâm mang lại vấn đề này giả sử bởi vì nó là 1 trong phép toán liên hợp, tác dụng vẫn là mảng (not-null) thích hợp ví như một trong những bọn chúng là null . Nhưng, điều đó đúng nếu như một trong số mảng là mảng trống. Vì vậy, theo tôi là một trong những phương thức tốt, chúng ta cần khởi chế tạo mảng nguồn vào bên dưới dạng mảng trống. Các các bạn nói gì?
Nếu có các khóa đụng hàng, "mang liên hợp" sẽ luôn luôn cần loại bỏ một trong số bọn chúng. Sự biệt lập là ở cái như thế nào.
alexis về điều khá khó khăn gọi (mặc dù anh ấy cũng chỉ là 1 trong những nửa sự thật liên quan mang lại OP). 2. Xem câu trả lời của Yehosef về hầu như gì array_merge thực thụ làm ... 3. Và xem câu trả lời của BoltCloông xã về một sự khác biệt quan trọng đặc biệt khác không được nói ngơi nghỉ đây: array_mergeđặt lại các phím số, không giống hệt như +.

Đây là 1 bài bác bình chọn minc họa đối kháng giản:

$ar1 = < 0 => "1-0", "a" => "1-a", "b" => "1-b">;$ar2 = < 0 => "2-0", 1 => "2-1", "b" => "2-b", "c" => "2-c">;print_r($ar1+$ar2);print_r(array_merge($ar1,$ar2));Với kết quả:

Array( <0> => 1-0 => 1-a => 1-b <1> => 2-1 => 2-c)Array( <0> => 1-0 => 1-a => 2-b <1> => 2-0 <2> => 2-1 => 2-c)Lưu ý rằng những khóa chưa hẳn số đụng hàng sẽ mang quý giá thứ nhất bằng cách thực hiện toán thù tử union dẫu vậy cực hiếm sau thực hiện array_merge.

Đối với các khóa số, cực hiếm đầu tiên sẽ được thực hiện cùng với tân oán tử union trong những lúc tất cả những cực hiếm sẽ được áp dụng cùng với array_merge, chỉ được lập chỉ mục lại.

Tôi hay áp dụng toán thù tử union mang lại mảng kết hợp cùng array_merge mang đến số. Tất nhiên, chúng ta có thể thực hiện array_merge nhằm phối hợp, chỉ cần các giá trị trong tương lai sẽ ghi đtrần những quý giá trước đó.


— Yehosef mối cung cấp
52

array_merge()khiến toàn bộ các khóa số được tìm kiếm thấy trong mảng đầu vào được lập chỉ mục lại trong mảng tác dụng. Toán tử đoàn kết +không gây ra một chỉ mục lại.


— BoltCloông xã mối cung cấp
29

*

Ngừng áp dụng array_merge ($ defaults, $ options):

function foo(array $options) $options += <"foo" => "bar">; // ...

Xem thêm: Php Array_Push () Function, Learn Php Array Push: Php Add To Array Explained

Lưu ý : hàm array_replace trường thọ Tính từ lúc PHP5.3.


— luchaninov mối cung cấp
vì sao họ buộc phải xong xuôi thực hiện array_merge ($ mặc định, $ options):? chính vì nó ko được cho phép những khóa ko được lập chỉ mục?
— ahnbizcad
nhưng câu trả lời thực thụ là didactic +1
— snr
trăng tròn

Dấu + chỉ thừa nhận giá trị từ bỏ lần lộ diện đầu tiên của khóa mảng. array_merge đem giá trị từ lần lộ diện cuối cùng của một khóa mảng.

Thí dụ:

$first = <"a"=>"one", "b"=>"two", "c"=>"three">;$second = <"a"=>"fourth", "b"=>"fifth", "c"=>"sixth", "3"=>"number three">;$merged = $first + $second;emang đến " plus sign merge ";var_dump($merged);$merged = array_merge($first,$second);eđến " array_merge function merge ";var_dump($merged);Kết trái này đến ra:

dấu cộng mảng vừa lòng nhất (4) <"a"> => string (3) "one" <"b"> => string (3) "two" <"c"> => string (5) "three" <3> => string (12) "số ba"

array_merge function merge array (4) <"a"> => string (6) "4th" <"b"> => string (5) "5th" <"c"> => string (5) "six" <0> => chuỗi (12) "số ba"

Đáng xem xét làm việc đây là rằng array_mergeactally xóa những "3" chỉ số của địa chỉ thiết bị tía tuy nhiên kia là 1 trong những chuỗi, cũng chính vì nó là một trong con số.

Vì vậy, hãy cẩn thận Lúc thích hợp tốt nhất với array_mergenhững mảng có chỉ mục số. Họ hoàn toàn có thể bị mất khóa xe. nếu như bọn chúng đặc biệt so với bạn, hãy đặt trước chúng bởi một chuỗi.