Hàm array_reduce trong PHP là gì?

14/06/2020 - lượt xem
Chia sẻ
 
Rate this post

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é.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

    Liên hệ với chúng tôi

    Để lại thông tin để nhận được các bài viết khác

    Rate this post

    Xem thêm nhiều bài tin mới nhất về Kiến thức

    Xem thêm