Hàm array_splice() trong PHP

Hàm array_splice() trong PHP
Hàm array_splice() trong PHP

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

Hàm array_splice() trong PHP dùng để thêm các phần tử từ mảng con vào 1 vị trí của mảng gốc và có thể xóa bao nhiêu phần tử tại vị trí đó trước khi thêm, hàm trả về một mảng chứa số phần tử bị xóa trước khi thêm và làm thay đổi mảng gốc, các khóa (key) trong mảng gốc sẽ được cập nhật lại sau khi thêm và xóa.

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

$kết_quả = array_splice($biến_mảng_gốc,vị_trí_bắt_đầu,số_phần_tử_cần_xóa,$biến_mảng_con);

$biến_mảng_gốc: Biến của mảng gốc, sau khi thêm và xóa thì biến mảng gốc thay đổi.

vị_trí_bắt_đầu: Vị trí bắt đầu cần thêm các phần tử của mảng con vào mảng gốc, vị trí bắt đầu cần xóa bao nhiêu phần tử trong mảng gốc trước khi thêm.

số_phần_tử_cần_xóa: Số phần tử cần xóa trong mảng gốc trước khi thực hiện thêm.

$biến_mảng_con: Biến của mảng con cần thêm vào mảng gốc.

$kết_quả: Trả về mảng chứa những phần tử đã xóa.

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

Lưu ý: vị trí bắt đầu của các phần tử tính từ 0:

<h2>Thêm phần tử mảng con vào vị trí 1 của mảng gốc </h2>
<?php 
$manggoc = array("Lực","Quỳnh","Hạ","Vân","Dung");
$mangcon = array("Nhím","Cherry");
array_splice($manggoc,1,0,$mangcon);
print_r($manggoc); // Kết quả: Array ( [0] => Lực [1] => Nhím [2] => Cherry [3] => Quỳnh [4] => Hạ [5] => Vân [6] => Dung )
?>

<h2>Thêm phần tử mảng con vào vị trí 0 của mảng gốc </h2>
<?php 
$manggoc = array("Lực","Quỳnh","Hạ","Vân","Dung");
$mangcon = array("Nhím","Cherry");
array_splice($manggoc,0,0,$mangcon);
print_r($manggoc); // Kết quả: Array ( [0] => Nhím [1] => Cherry [2] => Lực [3] => Quỳnh [4] => Hạ [5] => Vân [6] => Dung )
?>

<h2>Thêm phần tử mảng con vào vị trí 5 (cuối mảng) của mảng gốc </h2>
<?php 
$manggoc = array("Lực","Quỳnh","Hạ","Vân","Dung");
$mangcon = array("Nhím","Cherry");
array_splice($manggoc,5,0,$mangcon);
print_r($manggoc); // Kết quả: Array ( [0] => Lực [1] => Quỳnh [2] => Hạ [3] => Vân [4] => Dung [5] => Nhím [6] => Cherry )
?>

<h2>Xóa 1 phần tử tính từ vị trí 0 trong mảng gốc rồi thay thế và thêm phần tử mảng con vào vị trí 0 của mảng gốc, hàm trả về những phần tử đã xóa</h2>
<?php 
$manggoc = array("Lực","Quỳnh","Hạ","Vân","Dung");
$mangcon = array("Nhím","Cherry");
print_r(array_splice($manggoc,0,1,$mangcon)); // Kết quả đã xóa : Array ( [0] => Lực )
echo "<br>";
print_r($manggoc); // Kết quả: Array ( [0] => Nhím [1] => Cherry [2] => Quỳnh [3] => Hạ [4] => Vân [5] => Dung )
?>

<h2>Xóa 2 phần tử tính từ vị trí 0 trong mảng gốc rồi thay thế và thêm phần tử mảng con vào vị trí 0 của mảng gốc, hàm trả về những phần tử đã xóa</h2>
<?php 
$manggoc = array("Lực","Quỳnh","Hạ","Vân","Dung");
$mangcon = array("Nhím","Cherry");
print_r(array_splice($manggoc,0,2,$mangcon)); // Kết quả đã xóa : Array ( [0] => Lực [1] => Quỳnh )
echo "<br>";
print_r($manggoc); // Kết quả: Array ( [0] => Nhím [1] => Cherry [2] => Hạ [3] => Vân [4] => Dung )
?>

Kết quả:

/////Thêm phần tử mảng con vào vị trí 1 của mảng gốc
Array ( [0] => Lực [1] => Nhím [2] => Cherry [3] => Quỳnh [4] => Hạ [5] => Vân [6] => Dung )

/////Thêm phần tử mảng con vào vị trí 0 của mảng gốc
Array ( [0] => Nhím [1] => Cherry [2] => Lực [3] => Quỳnh [4] => Hạ [5] => Vân [6] => Dung )

/////Thêm phần tử mảng con vào vị trí 5 (cuối mảng) của mảng gốc
Array ( [0] => Lực [1] => Quỳnh [2] => Hạ [3] => Vân [4] => Dung [5] => Nhím [6] => Cherry )

/////Xóa 1 phần tử tính từ vị trí 0 trong mảng gốc rồi thay thế và thêm phần tử mảng con vào vị trí 0 của mảng gốc, hàm trả về những phần tử đã xóa
Array ( [0] => Lực )
Array ( [0] => Nhím [1] => Cherry [2] => Quỳnh [3] => Hạ [4] => Vân [5] => Dung )

/////Xóa 2 phần tử tính từ vị trí 0 trong mảng gốc rồi thay thế và thêm phần tử mảng con vào vị trí 0 của mảng gốc, hàm trả về những phần tử đã xóa
Array ( [0] => Lực [1] => Quỳnh )
Array ( [0] => Nhím [1] => Cherry [2] => Hạ [3] => Vân [4] => Dung )

Chạy Thử

Kinh nghiệm sử dụng hàm array_splice() trong PHP

array_splice() phù hợp khi cần can thiệp trực tiếp vào một phần của mảng, chẳng hạn xóa các phần tử cũ rồi chèn dữ liệu mới tại đúng vị trí. Khi sử dụng, nên xác định rõ vị trí bắt đầu và số lượng phần tử cần xử lý để tránh làm thay đổi sai cấu trúc mảng.

Phân biệt array_splice() với array_slice() khi xử lý mảng

Điểm khác biệt quan trọng nằm ở việc array_splice() làm thay đổi mảng ban đầu, trong khi array_slice() chỉ lấy ra một phần dữ liệu để tạo thành mảng mới. Vì vậy, nếu mục tiêu là đọc hoặc sao chép một đoạn mảng mà không ảnh hưởng dữ liệu gốc, array_slice() thường phù hợp hơn.

Ngược lại, khi cần loại bỏ một nhóm phần tử khỏi mảng hiện tại hoặc thay chúng bằng dữ liệu khác, array_splice() là lựa chọn thuận tiện. Việc phân biệt hai hàm ngay từ đầu giúp hạn chế tình trạng vô tình làm mất dữ liệu đang được sử dụng ở những phần khác của chương trình.

Cách xác định vị trí và số phần tử cần thay đổi

Tham số offset quyết định vị trí bắt đầu thao tác, còn length xác định số phần tử được loại bỏ. Đây là hai giá trị cần kiểm tra kỹ trước khi thực hiện, đặc biệt khi vị trí được tính toán động từ dữ liệu người dùng hoặc kết quả của một phép xử lý khác.

Nếu chỉ muốn chèn dữ liệu mà không xóa phần tử nào, có thể đặt length bằng 0. Cách này hữu ích khi muốn thêm phần tử vào giữa mảng mà vẫn giữ nguyên những dữ liệu đang có.

<?php
$products = ['Laptop', 'Chuột', 'Bàn phím'];

array_splice($products, 1, 0, ['Tai nghe']);

print_r($products);
?>

Kết quả là Tai nghe được thêm vào vị trí thứ hai, còn các phần tử phía sau được dịch chuyển tương ứng.

Những lưu ý khi sử dụng array_splice() với mảng PHP

  • Kiểm tra offset: Vị trí bắt đầu cần phù hợp với cấu trúc mảng và mục đích xử lý.
  • Xác định length rõ ràng: Giá trị này quyết định số phần tử bị loại bỏ, vì vậy không nên đặt tùy ý.
  • Nhớ rằng mảng gốc bị thay đổi: Nếu dữ liệu ban đầu còn cần dùng, nên tạo bản sao trước khi thao tác.
  • Chú ý chỉ số: Với mảng số nguyên, các khóa bị ảnh hưởng có thể được sắp xếp lại sau khi splice.
  • Thử với dữ liệu mẫu: Khi xử lý mảng lớn hoặc logic phức tạp, nên kiểm tra kết quả trước khi áp dụng vào dữ liệu thực tế.

Lời kết

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