Gộp các mảng được đánh chỉ số
Thuộc phần Logic và luồng chương trình trong hành trình PHP của Coddy. Bài học 14 trên 68.
Khi cần gộp nhiều mảng được đánh chỉ số thành một mảng lớn hơn, hàm array_merge() của PHP là giải pháp phù hợp. Hàm này nhận hai hoặc nhiều mảng làm đối số và tạo một mảng mới chứa tất cả phần tử từ các mảng đầu vào.
Đây là cú pháp cơ bản:
<?php
$firstList = ["Alice", "Bob"];
$secondList = ["Charlie", "Diana"];
$combined = array_merge($firstList, $secondList);
print_r($combined); // Đầu ra: Array ( [0] => Alice [1] => Bob [2] => Charlie [3] => Diana )
?>Lưu ý rằng array_merge() tạo một mảng hoàn toàn mới thay vì chỉnh sửa các mảng ban đầu. Các phần tử từ mảng thứ nhất xuất hiện trước, tiếp theo là các phần tử từ mảng thứ hai, cứ thế tiếp tục. Mảng mới tự động được đánh lại chỉ số, bắt đầu từ 0.
Bạn có thể gộp cùng lúc nhiều hơn hai mảng:
<?php
$morning = ["John", "Sarah"];
$afternoon = ["Mike", "Lisa"];
$evening = ["Tom"];
$allGuests = array_merge($morning, $afternoon, $evening);
print_r($allGuests); // In ra: Array ( [0] => John [1] => Sarah [2] => Mike [3] => Lisa [4] => Tom )
?>Hàm này đặc biệt hữu ích khi bạn thu thập dữ liệu từ nhiều nguồn khác nhau và cần gộp chúng thành một danh sách duy nhất, chẳng hạn như gộp danh sách khách mời từ các sự kiện khác nhau hoặc gộp danh mục sản phẩm từ nhiều danh mục.
Thử thách
DễBạn sẽ nhận ba đầu vào: hai mảng ở định dạng JSON và một mảng thứ ba cũng ở định dạng JSON. Đọc cả ba đầu vào, chuyển từng chuỗi JSON thành một mảng, dùng array_merge() để gộp cả ba mảng thành một mảng, rồi in mảng đã gộp bằng print_r().
Định dạng đầu vào: Ba dòng, mỗi dòng chứa một mảng JSON (ví dụ: ["apple","banana"])
Đầu ra mong đợi: Mảng đã gộp chứa tất cả phần tử từ ba mảng theo đúng thứ tự, được hiển thị bằng print_r()
Tự làm thử
<?php
// Đọc ba đầu vào JSON
$input1 = trim(fgets(STDIN));
$input2 = trim(fgets(STDIN));
$input3 = trim(fgets(STDIN));
// Chuyển các chuỗi JSON thành mảng
$array1 = (array)json_decode($input1, true);
$array2 = (array)json_decode($input2, true);
$array3 = (array)json_decode($input3, true);
// TODO: Viết code bên dưới để gộp các mảng và in ra kết quả
?>Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.
Tất cả bài học trong Logic và luồng chương trình
1Hàm nâng cao
Hàm ẩn danhClosure và 'use'Hàm mũi tênHàm callbackDùng 'call_user_func'Hàm biếnTruyền tham chiếuHàm đệ quyÔn tập: tổng hợp về hàm4Mảng đa chiều
Tạo mảng 2 chiềuTruy cập phần tử trong mảng 2 chiềuChỉnh sửa phần tử trong mảng 2 chiềuLặp qua các vòng lặp lồng nhauMảng kết hợp 2 chiềuÔn tập: bài tập lưới đơn giản2Thao tác nâng cao với mảng
Thêm phần tử bằng 'array_push'Xóa phần tử bằng 'array_pop'Thêm phần tử vào đầu mảng bằng 'array_unshift'Xóa phần tử đầu mảng bằng 'array_shift'Gộp các mảng được đánh chỉ sốGộp các mảng kết hợpTrích xuất phần tử bằng 'array_slice'Kiểm tra giá trị bằng 'in_array'Tìm khóa bằng 'array_search'Ôn tập: bài tập về danh sách phát3Sắp xếp mảng
Sắp xếp mảng có chỉ số tăng dầnSắp xếp mảng có chỉ số giảm dầnSắp xếp mảng kết hợp theo giá trịSắp xếp mảng kết hợp theo khóaSắp xếp theo thứ tự tự nhiênSắp xếp tùy chỉnh bằng 'usort'Ôn tập: Sắp xếp bảng xếp hạngTự luyện tập: Trình biên dịch PHP online