SYNCERのロゴ
アイキャッチ画像

array_reduce - 配列を簡約化する

array_reduceは、ユーザー定義のアルゴリズムを使って、配列を簡約化する関数です。配列の各値を1つの値にまとめあげます。

構文

mixed array_reduce ( array $array , callable $callback [, mixed $initial = NULL ] )

パラメータ

$array

対象の配列。

$callback

簡約化するためのコールバック関数。1回目は要素1と要素2、2回目は1回目(前回)の返り値と要素3、3回目は2回目の返り値と要素4、を引数にして実行される。最終的な返り値が、array_reduceの返り値となる。

$initial

初期値。この値を指定すると、1回目のコールバック関数に渡される引数が、この値と要素1になる。また、この値が空の配列を指定した場合の返り値となる。

返り値

mixed

最後に実行されたコールバック関数の返り値、または、第3引数に指定した初期値。

サンプルコード

<?php
	$array = [ 1, 2, 3, 4, 5 ] ;

	function callback( $a, $b ) {
		return $a + $b ;
	}

	$response = array_reduce( $array, "callback" ) ;

デモ

使用例

array_sum()と同じことをする例です。値を足していきます。これを応用すれば、最大公約数を求めたりできます。

<?php
/*** このコードは編集できます。 ***/

	$array = [ 1, 2, 3, 4, 5 ] ;

	function callback ( $a, $b ) {
		return $a + $b ;
	}

	$response = array_reduce( $array, "callback" ) ;

	var_dump( $response ) ;

初期値

初期値を指定すると、最初のコールバック関数に渡される値が、初期値と最初の要素になります。また、空の配列に対して実行した時の返り値となります。

<?php
/*** このコードは編集できます。 ***/

	$array = [ 1, 2, 3, 4, 5 ] ;
	$initial = 1000 ;

	function callback ( $a, $b ) {
		return $a + $b ;
	}

	$response = array_reduce( $array, "callback", $initial ) ;

	var_dump( $response ) ;
  • Twitterでシェア
  • Facebookでシェア
  • Google+でシェア
  • はてなブックマークでシェア
  • pocketに保存
  • LINEでシェア
更新履歴
2017年6月26日 (月)
コンテンツを公開しました。