Hàm array_splice
Hàm array_splice cắt và trả về
một phần của mảng. Khi đó, phần bị cắt
sẽ biến mất khỏi mảng. Thay cho phần bị cắt,
có thể chèn các phần tử mới vào.
Tham số đầu tiên chỉ định mảng cần cắt. Tham số thứ hai chỉ định, bắt đầu cắt từ phần tử nào, và tham số thứ ba - cắt bao nhiêu phần tử. Tham số thứ ba có thể là số âm - trong trường hợp này việc đếm sẽ bắt đầu từ cuối (-1 - phần tử cuối cùng, -2 - phần tử kế cuối và cứ thế). Tham số thứ ba có thể hoàn toàn không chỉ định - trong trường hợp này mảng sẽ bị cắt đến tận cùng.
Trong tham số không bắt buộc cuối cùng có thể chỉ định mảng các phần tử, chúng sẽ được chèn vào thay thế các phần tử bị xóa.
Cú pháp
array_splice(array &$array, int $offset, ?int $length = null, mixed $replacement = []): array
Ví dụ
Hãy cắt các phần tử từ phần tử đầu tiên (có
chỉ số 0), 3 phần tử:
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_splice($arr, 0, 3);
var_dump($res);
?>
Kết quả thực thi mã:
['a', 'b', 'c']
Khi đó mảng $arr sẽ trở thành như thế này:
['d', 'e']
Ví dụ
Hãy cắt các phần tử từ phần tử thứ hai (có
chỉ số 1), 3 phần tử:
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_splice($arr, 1, 3);
var_dump($res);
?>
Kết quả thực thi mã:
['b', 'c', 'd']
Khi đó mảng $arr sẽ trở thành như thế này:
['a', 'e']
Ví dụ
Hãy cắt các phần tử từ phần tử thứ hai (có chỉ số 1) đến cuối mảng. Để làm điều này, tham số thứ ba chúng ta không viết:
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_splice($arr, 1);
var_dump($res);
?>
Kết quả thực thi mã:
['b', 'c', 'd', 'e']
Khi đó mảng $arr sẽ trở thành như thế này:
['a']
Ví dụ
Hãy cắt các phần tử từ phần tử kế cuối,
2 phần tử. Để làm điều này, tham số thứ hai
chúng ta đặt thành -2 (vị trí của phần tử kế cuối):
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_splice($arr, -2, 2);
var_dump($res);
?>
Kết quả thực thi mã:
['d', 'e']
Khi đó mảng $arr sẽ trở thành như thế này:
['a', 'b', 'c']
Ví dụ
Hãy cắt các phần tử từ phần tử thứ hai (có
chỉ số 1), 2 phần tử, và thay vào đó chèn
các phần tử 1, 2, 3:
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_splice($arr, 1, 2, [1, 2, 3]);
var_dump($res);
?>
Kết quả thực thi mã:
['b', 'c']
Khi đó mảng $arr sẽ trở thành như thế này:
['a', 1, 2, 3, 'd', 'e']
Ví dụ
Hãy không cắt gì cả,
mà chỉ đơn giản chèn các phần tử 1, 2,
3 bắt đầu từ vị trí 1. Để làm điều này,
tham số thứ ba được đặt thành số không:
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_splice($arr, 1, 0, [1, 2, 3]);
var_dump($res);
?>
Kết quả thực thi mã:
[]
Khi đó mảng $arr sẽ trở thành như thế này:
['a', 1, 2, 3, 'b', 'c', 'd', 'e']
Xem thêm
-
hàm
array_slice,
hàm này cắt một phần mảng, mà không thay đổi chính mảng đó