Hàm array_chunk() trong PHP
Hàm array_chunk() trong php có tác dụng cắt một mảng thành một mảng mới, trong đó mỗi phần tử của mảng mới là một mảng gồm n phần tử (n do người sư quyết định thông qua tham số của hàm) và các phần tử này chính là các phần tử mà ta đã cắt ở mảng gốc.
Ta có thể hiểu nôm na rằng hàm array_chunk() phân chia các phần tử trong mảng thành các nhóm và mỗi nhóm sẽ có n phần tử. Ví dụ ta có một mảng gồm 10 phần tử thì khi sử dụng hàm array_chunk() với n = 3 thì ta sẽ có 4 nhóm, trong đó 3 nhóm đầu là 3 phần tử và nhóm cuối chỉ có 1 phần tử.
Cú pháp:
array array_chunk(array $array , int $size [, bool $preserve_keys = false])
Trong đó:
$array
là mảng cần chuyển đổi$size
số phần tử sẽ được gộp lại$preserve_keys
có 2 giá trị TRUE hoặc FALSE, giá trị mặc định là FALSE. Nếu ta thiết lập TRUE thì các phần tử trong mỗi group của mảng mới sẽ được đánh chỉ mục tăng dần, ngược lại nếu bằng FALSE thì sau mỗi group các phần tử sẽ tính lại chỉ số 0.
Hàm array_chunk() sẽ trả kết quả là một mảng mà ta đã cắt và phân nhóm và số phần tử của nó phụ thuộc vào tham số $size ở trên.
Ví dụ:
Trường hợp $preserve_key = FALSE
PHP:
$input_array = array('a', 'b', 'c', 'd', 'e');
echo '<pre>';
// Gom nhóm với mỗi nhóm là 2 phần tử
print_r(array_chunk($input_array, 2));
Kết quả:
Mã:
Array
(
[0] => Array
(
[0] => a
[1] => b
)
[1] => Array
(
[0] => c
[1] => d
)
[2] => Array
(
[0] => e
)
)
Các bạn để ý các phần tử của mỗi group được reset lại thành số 0 khi qua phần tử kết tiếp.
Trường hợp $preserve_key = TRUE
PHP:
$input_array = array('a', 'b', 'c', 'd', 'e');
echo '<pre>';
// Gom nhóm với mỗi nhóm là 2 phần tử
print_r(array_chunk($input_array, 2, true));<br><br><br><br><br>
Kết quả:
Mã:
Array
(
[0] => Array
(
[0] => a
[1] => b
)
[1] => Array
(
[2] => c
[3] => d
)
[2] => Array
(
[4] => e
)
)
Khác với ví dụ trên thì trong ví dụ này các phần tử của mỗi group sẽ có số chỉ mục liên tiếp nhau.
Gom nhóm với mỗi nhóm là 3 phần tử
PHP:
$input_array = array('a', 'b', 'c', 'd', 'e');
echo '<pre>';
// Gom nhóm với mỗi nhóm là 2 phần tử
print_r(array_chunk($input_array, 3));
Kết quả:
Mã:
Array
(
[0] => Array
(
[0] => a
[1] => b
[2] => c
)
[1] => Array
(
[0] => d
[1] => e
)
)
Hết.