Code Tu Tam

Hàm array_reduce trong PHP là gì?

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Exit mobile version