Hàm array_merge() trong PHP

Hàm array_merge() trong PHP
Hàm array_merge() trong PHP

Chức năng của Hàm array_merge() trong PHP

Hàm array_merge() trong PHP dùng để lấy cột giá trị của các mảng để nối lại với nhau thành một mảng mới, mảng nào đứng trước thì các phần tử của nó sẽ đứng trước sau khi nối vào mảng mới, cột khóa (key) sẽ được cập nhật lại trong mảng mới.

Cú pháp của Hàm array_merge() trong PHP

$mảng_mới = array_merge($biến_mảng_1, $biến_mảng_2, $biến_mảng_3, $biến_mảng_4);

$biến_mảng_1, $biến_mảng_2, $biến_mảng_3, $biến_mảng_4: Các biến mảng con, nối bao nhiêu mảng cũng được, từ 2 mảng trở lên.

$mảng_mới: Trả kết quả về mảng mới.

Ví dụ Hàm array_merge() trong PHP

<h2>Nối các mảng bình thường với nhau</h2>
<?php
$mangmot = array("Lực","Vân","Quỳnh");
$manghai = array("Dung","Hạ");
$mangba = array("Nhím","Cherry");
$mangmoi  = array_merge($mangmot, $manghai, $mangba);
// Kết quả: Array ( [0] => Lực [1] => Vân [2] => Quỳnh [3] => Dung [4] => Hạ [5] => Nhím [6] => Cherry )
print_r($mangmoi);
?>

<h2>Nối mảng bình thường với mảng đa chiều</h2>
<?php
$mangmot = array("Lực","Vân","Quỳnh");
$manghai = array(array("Nhím","Cherry"),"Dung","Hạ");
$mangmoi  = array_merge($mangmot,$manghai);
// Kết quả: Array ( [0] => Lực [1] => Vân [2] => Quỳnh [3] => Array ( [0] => Nhím [1] => Cherry ) [4] => Dung [5] => Hạ )
print_r($mangmoi);
?>

<h2>Nối mảng bình thường với mảng liên kết</h2>
<?php
$mangmot = array("Lực","Vân","Quỳnh");
$manghai = array(35=>"Dung", 2 =>"Nhím", 29 =>"Cherry");
$mangmoi  = array_merge($mangmot,$manghai);
// Kết quả: Array ( [0] => Lực [1] => Vân [2] => Quỳnh [3] => Dung [4] => Nhím [5] => Cherry )
print_r($mangmoi);
?>

Kết quả:

/////Nối các mảng bình thường với nhau
Array ( [0] => Lực [1] => Vân [2] => Quỳnh [3] => Dung [4] => Hạ [5] => Nhím [6] => Cherry )

/////Nối mảng bình thường với mảng đa chiều
Array ( [0] => Lực [1] => Vân [2] => Quỳnh [3] => Array ( [0] => Nhím [1] => Cherry ) [4] => Dung [5] => Hạ )

/////Nối mảng bình thường với mảng liên kết
Array ( [0] => Lực [1] => Vân [2] => Quỳnh [3] => Dung [4] => Nhím [5] => Cherry )

Chạy Thử

Những lưu ý khi sử dụng hàm array_merge() trong PHP

array_merge() phù hợp khi cần kết hợp nhiều mảng thành một mảng mới, nhưng kết quả có thể khác với dự đoán nếu các mảng chứa khóa số hoặc khóa chuỗi. Hiểu cách hàm xử lý từng loại khóa sẽ giúp tránh tình trạng dữ liệu bị ghi đè hoặc thay đổi chỉ mục ngoài ý muốn.

array_merge() xử lý khóa số và khóa chuỗi như thế nào?

Với các khóa số, array_merge() không giữ nguyên chỉ mục ban đầu. Các phần tử được đưa vào mảng kết quả theo thứ tự và đánh lại khóa từ 0. Vì vậy, không nên sử dụng chỉ mục cũ để giả định vị trí của dữ liệu sau khi gộp.

<?php
$mang1 = [2 => 'PHP', 5 => 'JavaScript'];
$mang2 = [8 => 'CSS'];

$ketQua = array_merge($mang1, $mang2);

print_r($ketQua);
?>

Kết quả sẽ có các khóa số lần lượt từ 0 đến 2. Điều này đặc biệt cần lưu ý khi dữ liệu được lấy từ nhiều nguồn nhưng vẫn cần duy trì chỉ mục ban đầu.

Đối với khóa chuỗi, nếu hai mảng có cùng một khóa thì giá trị xuất hiện ở mảng phía sau sẽ thay thế giá trị trước đó. Các khóa chuỗi không trùng nhau vẫn được giữ lại trong mảng kết quả.

Khi nào nên dùng array_merge() thay vì nối mảng trực tiếp?

Nên sử dụng array_merge() khi mục tiêu là tạo một mảng mới từ nhiều mảng và chấp nhận quy tắc xử lý khóa của hàm. Cách này rõ ràng hơn khi cần kết hợp danh sách dữ liệu, danh mục hoặc nhiều tập phần tử có cùng cấu trúc.

Nếu yêu cầu quan trọng là giữ nguyên khóa, đặc biệt với các mảng liên kết, cần cân nhắc cách kết hợp khác thay vì sử dụng array_merge() một cách máy móc. Việc lựa chọn phương pháp nên dựa trên ý nghĩa của khóa chứ không chỉ dựa vào mục đích gộp dữ liệu.

array_merge() có làm thay đổi mảng ban đầu không?

array_merge() tạo ra một mảng kết quả mới và không trực tiếp thay đổi các mảng được truyền vào. Vì vậy, có thể sử dụng các mảng ban đầu cho những xử lý khác sau khi thực hiện thao tác gộp.

<?php
$mang1 = ['PHP', 'JavaScript'];
$mang2 = ['CSS', 'HTML'];

$ketQua = array_merge($mang1, $mang2);

print_r($mang1);
print_r($ketQua);
?>

Trong ví dụ trên, $mang1 vẫn giữ dữ liệu ban đầu, còn $ketQua chứa toàn bộ phần tử sau khi kết hợp. Đây là điểm hữu ích khi cần tạo một tập dữ liệu mới nhưng vẫn muốn bảo toàn các mảng nguồn.

Lời kết

Cảm ơn các bạn đã tham khảo bài viết Hàm array_merge() trong PHP.

  • 0 Bình luận
Trần Thị Vân | Content Creator Web Mới
Trần Thị Vân
Trần Thị Vân là Content Creator tại Web Mới, phụ trách nghiên cứu, biên soạn nội dung và chia sẻ kiến thức về website, SEO, lập trình cùng các xu hướng công nghệ
Đánh giá
Chia sẻ nội dung đánh giá của bạn về Hàm array_merge() trong PHP
Email, Điện thoại của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *
Đánh giá của bạn
Tên *
Email
Số điện thoại *
Bình luận, Hỏi đáp
Yêu Cầu Báo Giá
Gửi trang web mẫu cần làm theo, chúng tôi sẽ báo giá đến bạn từ Email (tanlucit09@gmail.com - Bùi Tấn Lực) hoặc Zalo (Lực IT - 0398259259) !