【PHP8.x】array_product関数の使い方

作成日: 更新日:

array_product関数は、指定された配列に含まれるすべての数値要素を乗算し、その積を計算して返す関数です。この関数は、データの集合からすべての値の積を効率的に求めたい場合に利用されます。

この関数は一つの配列を必須の引数として受け取ります。配列の各要素は乗算のために数値型に変換されます。たとえば、整数や浮動小数点数だけでなく、数値として解釈できる文字列(例: '5')も有効な要素として扱われます。ブール値のtrue1に、false0に変換されて計算されます。もし配列に数値に変換できない要素が含まれていても、PHPは可能な限り型変換を試みて計算を続行します。

配列が空の場合、array_product関数は積を1として返します。これは、乗算における単位元として標準的な振る舞いです。また、配列内に0が含まれている場合は、結果として0が返されます。計算結果は、配列内の値に応じて整数(int型)または浮動小数点数(float型)として返されます。この関数はPHPの基本的な数値計算機能の一つとして、様々な場面で活用されています。

基本的な使い方

構文(syntax)

<?php

$numbers = [2, 3, 4];
$product = array_product($numbers);

?>

引数(parameters)

array $array

  • array $array: 値の積を計算する配列を指定します。配列の要素は数値である必要があります。

戻り値(return)

int|float

配列の要素の積を計算した結果を返します。配列に数値以外の要素が含まれる場合、あるいは配列が空の場合は、FALSE を返します。

サンプルコード

PHP array_product() で配列要素の積を計算する

<?php

/**
 * array_product() の使用例を示します。
 * 配列のすべての要素を乗算し、その積を計算します。
 *
 * PHP 8 の推奨コーディングスタイルに従っています。
 */
function demonstrateArrayProduct(): void
{
    // 整数を含む配列
    $numbers = [2, 3, 4, 5];

    // 配列のすべての要素の積を計算
    // array_product() は、配列内の数値をすべて掛け合わせます。
    $product = array_product($numbers);

    echo "元の配列: [" . implode(', ', $numbers) . "]\n";
    echo "要素の積: " . $product . "\n\n"; // 2 * 3 * 4 * 5 = 120

    // 浮動小数点数を含む配列
    $floatNumbers = [1.5, 2.0, 2.5];
    $floatProduct = array_product($floatNumbers);

    echo "元の配列: [" . implode(', ', $floatNumbers) . "]\n";
    echo "要素の積: " . $floatProduct . "\n\n"; // 1.5 * 2.0 * 2.5 = 7.5

    // 空の配列 (array_product() はデフォルトで 1 を返します)
    $emptyArray = [];
    $emptyProduct = array_product($emptyArray);

    echo "元の配列: [" . implode(', ', $emptyArray) . "]\n";
    echo "要素の積 (空の場合): " . $emptyProduct . "\n"; // 1
}

// 関数を実行して動作を確認します。
demonstrateArrayProduct();

?>

PHPのarray_product関数は、与えられた配列の全要素を乗算し、その積を計算します。これは、数値の総乗を求める際に便利です。

引数には、数値を含む配列を渡します。整数や浮動小数点数を混在できます。関数は配列内の数値を掛け合わせ、その結果を戻り値として返します。戻り値は、計算結果が整数の場合はint、浮動小数点数を含む場合はfloatです。

サンプルコードは、[2, 3, 4, 5]の積120や、[1.5, 2.0, 2.5]の積7.5の計算例を示しています。空の配列を引数に渡した場合、array_product関数はデフォルトで1を返します。これは、乗算における単位元として数学的な一貫性を保つためです。このように、array_productは配列内の数値の積を効率的に計算できるため、システム開発で役立ちます。

array_product関数は、配列内のすべての数値要素を乗算し、その積を計算します。引数には配列を一つ渡し、戻り値は計算結果に応じて整数(int)または浮動小数点数(float)となります。

特に注意すべきは、空の配列を渡した場合、デフォルトで1が返される点です。これは数学的な空積(empty product)の定義に基づくもので、初心者が間違いやすいポイントです。

また、配列内に数値として解釈できない要素が含まれる場合、PHPの型変換ルールによりそれらは0として扱われるため、意図せず結果の積が0になる可能性があります。コードを安全かつ正しく利用するためには、array_productに渡す配列が、数値のみで構成されていることを事前に確認するか、非数値要素を除外する処理を行うことを推奨します。

【PHP8.x】array_product関数の使い方 | いっしー@Webエンジニア