Xóa phần tử bằng 'array_pop'
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 11 trên 68.
Hàm (function) array_pop() xóa phần tử cuối cùng khỏi mảng và trả về giá trị đã xóa đó. Khác với array_push(), hàm này rút ngắn mảng đi một phần tử mỗi lần bạn dùng.
Cách hoạt động như sau:
<?php
$tasks = ["wash dishes", "do laundry", "buy groceries"];
$completedTask = array_pop($tasks);
echo $completedTask; // Đầu ra: buy groceries
print_r($tasks); // Đầu ra: Array ( [0] => wash dishes [1] => do laundry )
?>Lưu ý rằng array_pop() vừa sửa đổi mảng ban đầu, vừa trả về phần tử đã xóa. Điều này rất phù hợp khi bạn cần xử lý các mục từ cuối danh sách, chẳng hạn như hoàn thành nhiệm vụ cuối cùng trong danh sách việc cần làm hoặc xóa mục mới nhất khỏi ngăn xếp.
Nếu bạn thử dùng array_pop() với một mảng rỗng, hàm này sẽ trả về null mà không gây ra lỗi. Hàm (function) này đặc biệt hữu ích khi bạn dùng mảng làm ngăn xếp, thêm phần tử vào cuối và xóa phần tử ở cuối theo thứ tự «vào sau, ra trước».
Thử thách
DễBạn sẽ nhận hai đầu vào: một mảng tác vụ ban đầu ở định dạng JSON và một số cho biết cần hoàn thành bao nhiêu tác vụ. Đọc cả hai đầu vào, chuyển chuỗi JSON thành mảng, dùng array_pop() số lần tương ứng để xóa các tác vụ đã hoàn thành từ cuối 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ụ: ["task1","task2","task3"]), dòng thứ hai chứa số tác vụ cần hoàn thành (một số)
Đầu ra mong đợi: Mảng sau khi xóa các tác vụ đã hoàn thành, được hiển thị bằng print_r()
Tự làm thử
<?php
// Đọc mảng (array) JSON đầu vào
$jsonInput = fgets(STDIN);
$tasks = (array)json_decode($jsonInput, true);
// Đọc số lượng nhiệm vụ cần hoàn thành
$numToComplete = intval(fgets(STDIN));
// TODO: Viết code bên dưới
// Dùng array_pop() để xóa số lượng nhiệm vụ đã chỉ định
// In ra mảng cuối cùng
print_r($tasks);
?>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