関数の概要
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 として計算されるため注意が必要です。数値の積を簡単に計算したい場合に、わざわざループを使わずにシンプルかつ明瞭に実装できるので、実務でもよく使われる関数です。
