Hàm array_reduce trong PHP có nhiệm vụ thực hiện các thao tác xử lý trong hàm callback với $mảng được truyền vào. Hàm này tương thích với PHP 4, PHP 5, PHP 7.
Cú pháp hàm array_reduce trong PHP
array_reduce ( array $array , callable $callback [, mixed $initial = NULL ] ) : mixed
Hàm array_reduce có giá trị truyền vào là một mảng $array, tham số $callback là hàm callback bạn muốn gọi tới, $initial là tham số muốn chèn thêm vào mảng ban đầu. Hàm này sẽ trả về kết quả tùy vào hàm callblack.
<?php
function sum($carry, $item)
{
$carry += $item;
return $carry;
}
function product($carry, $item)
{
$carry *= $item;
return $carry;
}
$a = array(1, 2, 3, 4, 5);
$x = array();
var_dump(array_reduce($a, "sum"));
var_dump(array_reduce($a, "product", 10));
var_dump(array_reduce($x, "sum", "No data to reduce"));
?>Và kết quả trả về sẽ là
int(15) Vì 1+2+3+4+5 int(1200) Vì 10 * 1 * 2 * 3 * 4 * 5 = 1200 string(17) "No data to reduce" // Vì $mảng truyền vào là rỗng
Một ví dụ về ứng dụng hàm array_reduce trong việc callback
<?php $two_dimensional = array(); $two_dimensional['foo'] = array(1, 2, 3); $two_dimensional['bar'] = array(4, 5, 6); $one_dimensional = array_reduce($two_dimensional, 'array_merge', array(6)); var_dump($one_dimensional); ?>
Trong ví dụ này hàm array_reduce đã callback tới hàm array_merge của PHP và gộp các bản ghi trong mảng $two_dimensional và mảng $array(6) rỗng lại với nhau.
array(7) {
[0]=>
int(6)
[1]=>
int(1)
[2]=>
int(2)
[3]=>
int(3)
[4]=>
int(4)
[5]=>
int(5)
[6]=>
int(6)
}
Hi vọng với bài viết này, bạn đã hiểu rõ ứng dụng của hàm array_reduce trong PHP. Nếu bạn thấy bài viết hay và có ý nghĩa hãy like và chia sẻ bài viết này để mọi người cùng nhau học tập nhé.
Bình luận: