2
0

More than 1 year has passed since last update.

PHP array_reduce関数

Posted at

概要

  • PHPの組み込み関数であるarray_reduceについてちょっと調べたのでまとめておく。

内容

  • 指定された関数を与えられた配列の値を用いでどんどん処理していくものらしい。

使い方の例

  • 下記に当該関数の使い方の例を記載する。

    array_reduce(配列, '関数名');
    

使い方の実例

  • $aの配列の値をすべて足して返してほしい場合、下記のような処理になる。

    <?php
    
    function sum($carry, $item)
    {
        $carry += $item;
        return $carry;
    }
    
    $a = [1, 2, 3, 4, 5];
    
    $int = array_reduce($a, 'sum');
    echo $int; // 15
    
  1. 下記の処理はあくまで準備段階となる。array_reduce関数の引数を定義している。

    function sum($carry, $item)
    {
        $carry += $item;
        return $carry;
    }
    
    $a = [1, 2, 3, 4, 5];
    
  • $aの配列の要素がなくなるまで下記の処理が繰り返される。

    1. array_reduce関数はまず、第一引数の$a配列のインデックス0の値(intの1)を取り出し、sum関数の$itemに格納し処理を実行する。
    2. 上記処理の結果は$carryに格納される。
    3. 次に$aの配列のインデックス1の値(intの2)を取り出し、sum関数の$itemに格納し処理を実行する。この時$carryには一つ前の処理でインデックス0の値をsumで処理した結果が入っている。
    4. 上記処理の結果は$carryに格納される。($carryの値が更新)
  • array_reduce関数は第三引数の指定も可能で、インデックス0を実行する時の$carryの値を設定する事ができる。

    <?php
    
    function sum($carry, $item)
    {
        $carry += $item;
        return $carry;
    }
    
    $a = [1, 2, 3, 4, 5];
    
    $int = array_reduce($a, 'sum', 100);
    echo $int; //115
    

参考文献

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0