array_product

関数の概要

PHPの array_product 関数は、配列に含まれるすべての値を掛け合わせた結果を返します。数値の配列に対して積(かけ算)を一括で計算したい場合に便利です。特にループを使わずに一行で計算できるため、コードがスッキリと書けます。

パラメータの説明

  • array(必須): 掛け合わせたい値が入った数値の配列を指定します。配列の要素は数値である必要があります。文字列など数値に変換できない値がある場合、それらは 1 として扱われます。

戻り値

配列のすべての要素を掛け合わせた積を返します。配列が空の場合は 1 を返します。もし配列内に数値以外の値が混ざっていると、その値は 1 とみなされ計算されます。

使用例

基本的な使い方

$numbers = [2, 3, 4];
$result = array_product($numbers);
echo $result;  // 出力: 24

この例では、配列 [2, 3, 4] の要素をすべて掛け合わせ、結果は 24(2×3×4)になります。

空の配列を渡した場合

$empty = [];
$result = array_product($empty);
echo $result;  // 出力: 1

空の配列を渡した場合、結果は 1 が返ります。これは乗法の単位元が 1 であるためです。

数値以外の要素を含む配列

$mixed = [5, "10", true, "abc"];
$result = array_product($mixed);
echo $result;  // 出力: 50

この配列では、”10″ は文字列ですが数値に変換されます(10)。true は 1 として扱われ、”abc” は数値化できないため 1 とみなされます。結果は 5 × 10 × 1 × 1 = 50 です。

小数点の計算も可能

$floats = [1.5, 2.0, 3];
$result = array_product($floats);
echo $result;  // 出力: 9

小数点数も問題なく計算できます。この場合は 1.5 × 2.0 × 3 = 9 となります。

関連する関数

  • array_sum: 配列のすべての値の合計を求める関数
  • array_map: 各要素に対して関数を適用する
  • array_reduce: 配列の値を累積的に処理して単一の値を返す

まとめ

array_product は配列内の数値をすべて掛け合わせる便利な関数です。配列が空の場合は 1 を返し、数値以外の値は 1 として計算されるため注意が必要です。数値の積を簡単に計算したい場合に、わざわざループを使わずにシンプルかつ明瞭に実装できるので、実務でもよく使われる関数です。