Open In App

PHP | Ds\Deque reduce() Function

Improve
Improve
Like Article
Like
Save
Share
Report

The Ds\Deque::reduce() function is an inbuilt function in PHP which is used to reduce the Deque to a single element using callback function.

Syntax:

public Ds\Deque::reduce( $callback, $initial ) : mixed

Parameters: This function accept two parameters as mentioned above and described below:

  • callable: It contains the operation to be performed on the elements of Deque resulting into a single element.
  • value: It holds the initial value of carry which will be the result after performing operation on all elements.

Return Value: This function returns the final value returned by the callback function.

Below programs illustrate the Ds\Deque::reduce() function in PHP:

Program 1:




<?php
  
// Declare a deque
$deck = new \Ds\Deque([10, 20, 30, 40, 50, 60]);
  
echo("Elements of Deque\n");
  
// Display the Deque elements
print_r($deck);
  
// Function to perform operation on deque
$func = function($carry, $element) {
    return $carry + $element;
};
   
echo("\nDeque after reduced into single element: ");
  
// use reduce() function
var_dump($deck->reduce($func, 5));
  
?>


Output:

Elements of Deque
Ds\Deque Object
(
    [0] => 10
    [1] => 20
    [2] => 30
    [3] => 40
    [4] => 50
    [5] => 60
)

Deque after reduced into single element: int(215)

Program 2:




<?php
  
// Declare a deque
$deck = new \Ds\Deque([10, 20, 30, 40, 50, 60]);
  
echo("Elements of Deque\n");
  
// Display the Deque elements
print_r($deck);
  
// Function to perform operation on deque
$func = function($carry, $element) {
    return $carry * $element + 20;
};
   
echo("\nDeque after reduced into single element: ");
  
// use reduce() function
var_dump($deck->reduce($func, 10));
  
?>


Output:

Elements of Deque
Ds\Deque Object
(
    [0] => 10
    [1] => 20
    [2] => 30
    [3] => 40
    [4] => 50
    [5] => 60
)

Deque after reduced into single element: int(8714461220)

Reference: http://php.net/manual/en/ds-deque.reduce.php



Last Updated : 31 Jan, 2019
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads