PHPのarray_reduce()
関数は、ユーザー定義関数を再帰的に適用し、配列の全ての要素の値を、ひとつの値にまとめる組み込み関数。
定義
多様な型 array_reduce( 配列型 $input, コールバック $function[, 多様な型 $initial] );
パラメータ
- 配列型 $input
ひとつの値にまとめる配列。
- コールバック $callback
まとめる際に用いるユーザー定義関数を指定。
- 多様な型 $initial
オプション。
コールバック関数に、最初に渡す値。
戻り値
多様な型。
配列要素の値を、ひとつにまとめた値。
構文
ユーザー定義関数で、配列の全ての要素の値を、ひとつの値にまとめる
ひとつの値 = array_reduce( ひとつの値にまとめる配列, コールバック関数 );
「ひとつの値にまとめる配列」の全ての配列要素を、「コールバック関数」を用いて、「ひとつの値」にまとめる。
ユーザー定義関数で、特定の値と、配列の全ての要素の値を、ひとつの値にまとめる
ひとつの値 = array_reduce( ひとつの値にまとめる配列, コールバック関数, 最初に渡す値 );
「最初に渡す値」と、「ひとつの値にまとめる配列」の全ての配列要素を、「コールバック関数」を用いて、「ひとつの値」にまとめる。
サンプル
ユーザー定義関数で、配列の全ての要素の値を、ひとつの値にまとめる(1)
配列の全ての要素の値「1、2、3、4」を、合計する。
<?php
function arraySum( $varA, $varB ) {
return( $varA += $varB );
}
$varArray = array( 1, 2, 3, 4 );
$varSum = array_reduce( $varArray, "arraySum" );
echo "$varSum";
?>
function arraySum( $varA, $varB ) {
return( $varA += $varB );
}
$varArray = array( 1, 2, 3, 4 );
$varSum = array_reduce( $varArray, "arraySum" );
echo "$varSum";
?>
↓↓↓出力結果↓↓↓
10
ユーザー定義関数で、配列の全ての要素の値を、ひとつの値にまとめる(2)
「10」と、配列の全ての要素の値「1、2、3、4」を、合計する。
<?php
function arraySum( $varA, $varB ) {
return( $varA += $varB );
}
$varArray = array( 1, 2, 3, 4 );
$varSum = array_reduce( $varArray, "arraySum", 10 );
echo "$varSum";
?>
function arraySum( $varA, $varB ) {
return( $varA += $varB );
}
$varArray = array( 1, 2, 3, 4 );
$varSum = array_reduce( $varArray, "arraySum", 10 );
echo "$varSum";
?>
↓↓↓出力結果↓↓↓
20
ユーザー定義関数で、配列の全ての要素の値を、ひとつの値にまとめる(3)
「10」と、配列の全ての要素の値「1、2、3、4」を、掛け合わせる。
<?php
function arraySum( $varA, $varB ) {
return( $varA *= $varB );
}
$varArray = array( 1, 2, 3, 4 );
$varSum = array_reduce( $varArray, "arraySum", 10 );
echo "$varSum";
?>
function arraySum( $varA, $varB ) {
return( $varA *= $varB );
}
$varArray = array( 1, 2, 3, 4 );
$varSum = array_reduce( $varArray, "arraySum", 10 );
echo "$varSum";
?>
↓↓↓出力結果↓↓↓
240
ユーザー定義関数で、連想配列の全ての要素の値を、ひとつの値にまとめる
連想配列の全ての要素の値「1、2、3、4」を、合計する。
<?php
function arraySum( $varA, $varB ) {
return( $varA += $varB );
}
$varArray = array(
"a" => 1,
"b" => 2,
"c" => 3,
"d" => 4
);
$varSum = array_reduce( $varArray, "arraySum" );
echo "$varSum";
?>
function arraySum( $varA, $varB ) {
return( $varA += $varB );
}
$varArray = array(
"a" => 1,
"b" => 2,
"c" => 3,
"d" => 4
);
$varSum = array_reduce( $varArray, "arraySum" );
echo "$varSum";
?>
↓↓↓出力結果↓↓↓
10