Thêm phần tử vào đầu mảng bằng 'array_unshift'
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 12 trên 68.
Trong khi array_push() thêm các phần tử vào cuối mảng, hàm (function) array_unshift() làm điều ngược lại. Hàm này thêm một hoặc nhiều phần tử vào đầu mảng. Hàm này sửa đổi trực tiếp mảng ban đầu và trả về độ dài mới của mảng.
Đây là cú pháp cơ bản:
<?php
$tasks = ["buy groceries", "do laundry"];
array_unshift($tasks, "urgent meeting");
print_r($tasks); // In ra: Array ( [0] => urgent meeting [1] => buy groceries [2] => do laundry )
?>Hãy chú ý phần tử mới trở thành phần tử ở chỉ số 0, còn tất cả phần tử hiện có dịch chuyển đến các chỉ số cao hơn. Việc đánh lại chỉ số này diễn ra tự động: array_unshift() cập nhật tất cả khóa số để duy trì thứ tự chính xác.
Bạn cũng có thể thêm nhiều phần tử cùng lúc:
<?php
$priorities = ["medium task"];
array_unshift($priorities, "high priority", "critical task");
print_r($priorities); // Đầu ra: Array ( [0] => high priority [1] => critical task [2] => medium task )
?>Hàm (function) này đặc biệt hữu ích khi bạn cần ưu tiên các phần tử trong danh sách, chẳng hạn như thêm các việc cần làm khẩn cấp lên đầu danh sách việc cần làm hoặc chèn các phần tử có mức độ ưu tiên cao vào đầu hàng đợi.
Thử thách
DễBạn sẽ nhận hai đầu vào: một mảng thông báo ban đầu ở định dạng JSON và một thông báo khẩn cấp mới cần thêm vào. Đọc cả hai đầu vào, chuyển chuỗi JSON thành một mảng, dùng array_unshift() để thêm thông báo khẩn cấp vào đầu mảng, rồi in mảng cuối cùng bằng print_r().
Định dạng đầu vào: Hai dòng: dòng đầu tiên chứa một mảng JSON (ví dụ: ["meeting reminder","email received"]), dòng thứ hai chứa thông báo khẩn cấp cần thêm vào
Đầu ra mong đợi: Mảng sau khi thêm thông báo khẩn cấp vào đầu, được hiển thị bằng print_r()
Tự làm thử
<?php
// Đọc mảng thông báo JSON
$jsonInput = fgets(STDIN);
$notifications = (array)json_decode($jsonInput, true);
// Đọc thông báo khẩn cấp cần thêm
$urgentNotification = trim(fgets(STDIN));
// TODO: Viết code bên dưới để thêm thông báo khẩn cấp vào đầu mảng
// In ra mảng cuối cùng
print_r($notifications);
?>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