例
配列内の値をユーザー定義関数に送信し、文字列を返します:
<?php
function myfunction($v1,$v2)
{
return $v1 . "-" . $v2;
}
$a=array("Dog","Cat","Horse");
print_r(array_reduce($a,"myfunction"));
?>
定義と使用法
array_reduce() 関数は、配列内の値をユーザー定義関数に送信し、戻り値を返します文字列。
注: 配列が空であるか、初期値が渡されていない場合、この関数は NULL を返します。
構文
array_reduce(array,myfunction,initial)
パラメータ | 説明 |
配列 | 必須。配列を指定します。 |
私の機能 | 必須。関数の名前を指定します。 |
イニシャル | オプション。処理のために関数に送信される最初の値を指定します。 |
技術的な詳細
戻り値: | 結果の値を返します。 |
PHP バージョン: | 4.0.5+ |
更新ログ:
| PHP 5.3.0 以降、初期パラメータは複数の型 (混合) を受け入れ、PHP 5.3.0 より前のバージョンではのみサポートされます。整数。 |
更多实例
实例 1
带 initial 参数:
<?php
function myfunction($v1,$v2)
{
return $v1 . "-" . $v2;
}
$a=array("Dog","Cat","Horse");
print_r(array_reduce($a,"myfunction",5));
?>
实例 2
返回总和:
<?php
function myfunction($v1,$v2)
{
return $v1+$v2;
}
$a=array(10,15,20);
print_r(array_reduce($a,"myfunction",5));
?>
array_reduce的强大不仅如此。看下面的例子。将数组$arr的首个元素弹出,作为初始值,避免min($result['min'], $item['min'])中$result为空。
否则最终结果min是空的。
$arr = array(
array('min' => 1.5456, 'max' => 2.28548, 'volume' => 23.152),
array('min' => 1.5457, 'max' => 2.28549, 'volume' => 23.152),
array('min' => 1.5458, 'max' => 2.28550, 'volume' => 23.152),
array('min' => 1.5459, 'max' => 2.28551, 'volume' => 23.152),
array('min' => 1.5460, 'max' => 2.28552, 'volume' => 23.152),
);
$initial = array_shift($arr);
$t = array_reduce($arr, function($result, $item) {
$result['min'] = min($result['min'], $item['min']);
$result['max'] = max($result['max'], $item['max']);
$result['volume'] += $item['volume'];
return $result;
}, $initial);
总之,这种写法比foreach更优雅,更少的定义变量。推荐使用。
以上がPHP は配列内の値をユーザー定義関数に送信し、文字列関数 array_reduce() を返します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。