3 cách merge array trong PHP

BBMCode đã đăng vào lúc 10:07:09 02/07/2023 | đọc khoảng 3 phút, có 450 từ

Các hàm thao tác mảng trong PHP đa dạng và phong phú. Nhu cầu merge 2 hay nhiều mảng lại với nhau rất thường hay gặp trong thực tế. Hôm nay mình sẽ viết chi tiết 3 cách hay được dùng để merge array trong PHP.

 

1. Dùng hàm array_merge

Tất nhiên rồi, hàm này chắc là không quá xa lạ với anh em PHP developers. Cách dùng cũng đơn giản, dễ hiểu. Cùng vào ví dụ nhé

 

$arr1 = ['one', 'two'];
$arr2 = ['three', 'four'];

print_r(array_merge($arr1, $arr2));
Array
(
    [0] => one
    [1] => two
    [2] => three
    [3] => four
)

 

Lưu ý: array_merge trùng key, key cuối cùng sẽ ghi đè value các key trước đó.

$arr1=["a"=>"red","b"=>"green"];
$arr2=["c"=>"blue","b"=>"yellow"];

print_r(array_merge($arr1, $arr2));

// key "b", giá trị yellow đã thay cho green
Array
(
    [a] => red
    [b] => yellow 
    [c] => blue
)

 

2. Dùng spread để merge array

Từ phiên bản 7.4, PHP đã có toán tử spread. Nếu anh em đã code react nhiều thì không quá xa lạ spread đúng không. Dùng đơn giản, rất gọn code. Xem ví dụ nhé.

 

$arr1 = ['one', 'two'];
$arr2 = ['three', 'four'];

$mergedArr = [...$arr1, ...$arr2]; // spread
print_r($mergedArr);
Array
(
    [0] => one
    [1] => two
    [2] => three
    [3] => four
)

 

3. Dùng for/foreach để merge array

Tất nhiên đây là cách ít dùng, nhưng có một vài tình huống dùng nó vẫn tốt hơn, như là merge một phần của mảng chứ không merge toàn bộ.

$arr1 = ['one', 'two'];
$arr2 = ['three', 'four'];

$mergedArr = $arr1;
foreach ($arr2 as $value) {
    $mergedArr[] = $value;
}
print_r($mergedArr);
Array
(
    [0] => one
    [1] => two
    [2] => three
    [3] => four
)

Đọc thì nhanh hết và sẽ mau quên đó, hãy thực hành để quen và nhớ lâu hơn nha các bạn. Have a nice day!