Hàm array_shift() trong PHP

Hàm array_shift() trong PHP
Hàm array_shift() trong PHP

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

Hàm array_shift() trong PHP dùng để xóa phần tử đầu tiên của một mảng, các khóa (key) sẽ được cập nhật lại đối với mảng bình thường, còn đối với mảng liên kết các khóa (key) không cập nhật lại, số lượng phần tử trong mảng sẽ giảm đi 1 phần tử sau mỗi lần xóa, hàm này trả về giá trị của phần tử vừa xóa, giá trị đó có thể là chuỗi, số hoặc một mảng con.

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

array_shift($biến_mảng_gốc);

$biến_mảng_gốc: Biến của mảng gốc cần xóa phần tử đầu tiên.

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

<h2>Hàm array_shift() mảng bình thường</h2>
<?php
// Mảng chứa giá trị chuỗi
$manggoc = array("Lực","Vân","Quỳnh","Dung");
echo array_shift($manggoc)."<br>";
print_r($manggoc);
// Kết quả: Array ( [0] => Vân [1] => Quỳnh [2] => Dung )
echo "<br>";

// Mảng chứa giá trị số
$manggocso = array(35,29,2,30);
echo array_shift($manggocso)."<br>";
print_r($manggocso);
// Kết quả: Array ( [0] => 29 [1] => 2 [2] => 30 )
?>

<h2>Hàm array_shift() mảng liên kết</h2>
<?php
$manglkgoc = array("Lực"=>35,"Vân"=>29,"Quỳnh"=>2,"Dung"=>30);
echo array_shift($manglkgoc)."<br>";
print_r($manglkgoc);
// Kết quả: Array ( [Vân] => 29 [Quỳnh] => 2 [Dung] => 30 )
echo "<br>";
?>

<h2>Hàm array_shift() mảng đa chiều</h2>
<?php
$mangdcgoc = array(array("Lực","35","Nam"),array("Vân","29","Nữ"),array("Quỳnh","1","Nữ"),array("Hạ","2","Nữ"));
print_r(array_shift($mangdcgoc));
echo "<br>";
print_r($mangdcgoc);
// Kết quả: Array ( [0] => Array ( [0] => Vân [1] => 29 [2] => Nữ ) [1] => Array ( [0] => Quỳnh [1] => 1 [2] => Nữ ) [2] => Array ( [0] => Hạ [1] => 2 [2] => Nữ ) )

?>

Kết quả:

/////Hàm array_shift() mảng bình thường
Lực
Array ( [0] => Vân [1] => Quỳnh [2] => Dung )
35
Array ( [0] => 29 [1] => 2 [2] => 30 )

/////Hàm array_shift() mảng liên kết
35
Array ( [Vân] => 29 [Quỳnh] => 2 [Dung] => 30 )

/////Hàm array_shift() mảng đa chiều
Array ( [0] => Lực [1] => 35 [2] => Nam )
Array ( [0] => Array ( [0] => Vân [1] => 29 [2] => Nữ ) [1] => Array ( [0] => Quỳnh [1] => 1 [2] => Nữ ) [2] => Array ( [0] => Hạ [1] => 2 [2] => Nữ ) )

Chạy Thử

Những lưu ý khi sử dụng array_shift() trong PHP

array_shift() khá tiện khi cần lấy và loại bỏ phần tử đầu tiên của mảng. Tuy nhiên, hàm này đồng thời thay đổi mảng ban đầu nên cần hiểu rõ cách hoạt động trước khi áp dụng vào xử lý dữ liệu thực tế.

array_shift() làm thay đổi mảng ban đầu như thế nào?

Khi gọi array_shift(), phần tử đầu tiên sẽ được lấy ra khỏi mảng và các phần tử còn lại được dịch chuyển về phía trước. Điều này có nghĩa là mảng ban đầu không còn giữ nguyên trạng thái trước khi gọi hàm.

Đặc biệt, nếu mảng sử dụng chỉ số số nguyên, các khóa của những phần tử còn lại sẽ được đánh lại từ 0. Vì vậy, không nên giả định rằng khóa cũ vẫn được giữ nguyên sau khi xử lý.

<?php
$products = ['Laptop', 'Điện thoại', 'Máy tính bảng'];

$firstProduct = array_shift($products);

print_r($products);
?>

Sau thao tác trên, Laptop đã được lấy ra và mảng $products chỉ còn hai phần tử. Nếu cần giữ nguyên dữ liệu gốc để sử dụng ở bước khác, nên tạo một bản sao trước khi gọi hàm.

Xử lý mảng rỗng khi sử dụng array_shift()

Với một mảng không có phần tử, array_shift() sẽ trả về null. Trường hợp này dễ gây lỗi logic nếu chương trình tiếp tục xử lý kết quả như một dữ liệu hợp lệ.

<?php
$items = [];

$item = array_shift($items);

if ($item === null) {
    echo 'Mảng không có phần tử để lấy';
}
?>

Kiểm tra kết quả trước khi sử dụng là cách an toàn, đặc biệt khi dữ liệu đầu vào có thể rỗng. Nếu giá trị null cũng có thể xuất hiện như một phần tử hợp lệ trong dữ liệu, nên kiểm tra số lượng phần tử trước khi gọi hàm để tránh nhầm lẫn.

Khi nào nên dùng array_shift() thay cho các hàm xử lý mảng khác?

Nên sử dụng array_shift() khi mục tiêu rõ ràng là lấy và đồng thời loại bỏ phần tử đầu tiên. Đây là lựa chọn phù hợp với các tình huống xử lý dữ liệu theo thứ tự, chẳng hạn như lần lượt lấy từng phần tử từ đầu danh sách.

Nếu chỉ muốn đọc phần tử đầu tiên nhưng vẫn giữ nguyên mảng, không nên dùng array_shift() vì hàm sẽ làm thay đổi dữ liệu. Trong trường hợp đó, có thể truy cập trực tiếp phần tử đầu tiên hoặc lựa chọn một phương pháp phù hợp với cấu trúc mảng.

Ngoài ra, nếu phải gọi array_shift() liên tục trên một mảng rất lớn, cần cân nhắc hiệu năng vì việc dịch chuyển các phần tử còn lại có thể tạo thêm chi phí xử lý. Với dữ liệu lớn hoặc yêu cầu xử lý theo kiểu hàng đợi, một cấu trúc dữ liệu phù hợp hơn có thể mang lại hiệu quả tốt hơn.

Lời kết

Cảm ơn các bạn đã tham khảo bài viết Hàm array_shift() 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_shift() 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) !