・IT/Web系エンジニアの経験者の方
・どこの転職エージェントを利用しようか迷っている方
それなら、キッカケエージェントにご相談!
キッカケエージェントでは、少数精鋭のエージェントが、エンジニアの経験やスキル、志向性などをカウンセリングし、的確なアドバイスを提供します!
また、徹底した企業へのヒアリングにより、最適なマッチングを実現し、今では内定率が一般的なエージェントの2倍以上となっています!
転職エージェントに迷っている方、まずは無料でキャリア相談から!
(この記事は2022年8月22日に投稿されました。)
PHPで配列や連想配列の値を掛け算する方法として、array_product()があります。
array_product()とは配列の値の積を計算するで関数あり、格納されている値を全て掛け算した結果を返り値として返します。
こちらの関数を使用しなくても掛け算した結果を取得することはできますが、毎回値を指定して式を作るのはとても面倒です。
しかし、array_product()に対象の配列を指定するだけで、掛け算した結果を取得することができるのでとても便利です。
そして、array_product()は、連想配列や2次元配列や3次元配列のような多次元配列の値の積を計算することもできます。
そのため、配列や連想配列で格納されている値の積を求めたいと思う人はぜひ、こちらの関数を使用しましょう。
今回はPHPのarray_product()で配列や連想配列の値の積を計算する方法について紹介していきます。
・配列や連想配列の値の積を取得したい人
array_product()とは
冒頭でも言いましたが、array_product()とは、配列の値の積を計算する関数となります。
値の積を計算することから、計算された積の値が返り値として返されるようになります。
array_product()の書き方
array_product()の書き方は下記のようになります。
1 | <?php array_product('対象の配列'); ?> |
array_product()は基本1つのパラメータを指定して使用することができます。
array_product()のパラメータ
array_product()のパラメータは下記のようになります。
- 対象の配列(必須):
値の積を計算したい配列を指定する
array_product()は必須なパラメータとして「対象の配列」を指定します。
array_product()で配列の値の積を計算するサンプルコード
array_product()で配列の値の積を計算するサンプルコードをご紹介します。
ここでは下記の4つの場合で、array_product()を使用します。
- 配列の値が整数である場合
- 配列の値が小数である場合
- 配列の値が文字列である場合
- 配列の値が文字列の数値である場合
配列の値が整数である場合
配列の値が整数である場合にarray_product()を使用してみます。
⚫︎ index.php
1 2 3 4 5 6 7 8 9 | <?php echo '⚫︎ 対象の配列'; $array_int = [2, 4, 6, 8, 10]; print_r($array_int); echo '⚫︎ array_product()使用後'; $array_int_pd = array_product($array_int); print_r($array_int_pd); ?> |
実行結果
配列の値が整数の場合にarray_product()を使用すると、値の積が計算されます。
そのため、配列内の値が掛け算され、「3840」が表示されています。
配列の値が小数である場合
配列の値が小数である場合にarray_product()を使用してみます。
⚫︎ index.php
1 2 3 4 5 6 7 8 9 | <?php echo '⚫︎ 対象の配列'; $array_float = [2.2, 4.5, 6.5, 8.3, 10.4]; print_r($array_float); echo '⚫︎ array_product()使用後'; $array_float_pd = array_product($array_float); print_r($array_float_pd); ?> |
実行結果
配列の値が小数の場合にarray_product()を使用すると、値の積が計算されます。
そのため、配列内の値が掛け算され、「5554.692」が表示されています。
配列の値が文字列である場合
配列の値が文字列である場合にarray_product()を使用してみます。
⚫︎ index.php
1 2 3 4 5 6 7 8 9 | <?php echo '⚫︎ 対象の配列'; $array_str = ['モンキー', 'ロロノア', 'ヴィンスモーク', 'トニートニー', 'ニコ']; print_r($array_str); echo '⚫︎ array_product()使用後'; $array_str_pd = array_product($array_str); print_r($array_str_pd); ?> |
実行結果
配列の値が文字列の場合にarray_product()を使用すると、数値ではないため、値の積が計算されません。
そのため、「0」が表示されています。
配列の値が文字列の数値である場合
配列の値が文字列の数値である場合にarray_product()を使用してみます。
⚫︎ index.php
1 2 3 4 5 6 7 8 9 | <?php echo '⚫︎ 対象の配列'; $array_str = ['3', '6', '9', '12', '15']; print_r($array_str); echo '⚫︎ array_product()使用後'; $array_str_pd = array_product($array_str); print_r($array_str_pd); ?> |
実行結果
配列の値が文字列の数値の場合にarray_product()を使用すると、値の積が計算されます。
そのため、配列内の値が掛け算され、「29160」が表示されています。
array_product()は文字列の数値なら、計算が行われます。
array_product()で数値と文字列が混合している配列の値を計算する場合
array_product()で数値と文字列が混合している配列の値を計算してみます。
⚫︎ index.php
1 2 3 4 5 6 7 8 9 | <?php echo '⚫︎ 対象の配列'; $array_mixed = ['メリー', 6.5, '9', 8, 'サニー']; print_r($array_mixed); echo '⚫︎ array_product()使用後'; $array_mixed_pd = array_product($array_mixed); print_r($array_mixed_pd); ?> |
実行結果
数値と文字列が混合している配列にarray_product()を使用すると、計算されません。
そのため、配列に複数の数値がありますが、「0」が返されています。
array_product()で連想配列の値の積を計算するサンプルコード
array_product()で連想配列の値の積を計算するサンプルコードをご紹介します。
⚫︎ index.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <?php echo '⚫︎ 対象の連想配列'; $array_ass = [ 'ゴムゴム' => 56, 'ハナハナ' => 87, 'ヒトヒト' => 110, 'ヨミヨミ' => 43, '二キュ二キュ' => 29 ]; print_r($array_ass); echo '⚫︎ array_product()使用後'; $array_ass_pd = array_product($array_ass); print_r($array_ass_pd ); ?> |
実行結果
array_product()によって連想配列の値の積を計算しています。
そのため、配列内の値が掛け算され、「668292240」が表示されています。
array_product()で多次元配列の値の積を計算するサンプルコード
array_product()で多次元配列の値の積を計算するサンプルコードをご紹介します。
2次元配列に使用する場合
2次元配列にarray_product()を使用して値の積を計算してみます。
⚫︎ index.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <?php echo '⚫︎ 対象の配列'; $array_int2 = [ [6, 4, 8, 5, 2], ['4', '7', '9', '3', '2'], [2, 2, 2, 2, 2] ]; print_r($array_int2); $length = count($array_int2); for($i = 0; $i < $length; ++$i) { $array_int2_pd = array_product($array_int2[$i]); echo '⚫︎ array_product()使用後'. $i + 1;; print_r($array_int2_pd); } ?> |
実行結果
配列にインデックスを1つ指定することで、2次元配列の中にある1次元配列の値の積を計算することができます。
今回は、for文を使用して、2次元配列にある全ての1次元配列の値の積をそれぞれ計算しています。
3次元配列に使用する場合
3次元配列にarray_product()を使用して、値の積を計算してみます。
⚫︎ index.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <?php echo '⚫︎ 対象の配列'; $array_int3 = [ [[6, 4, 8, 5, 2],['4', '7', '9', '3', '2'],[2, 2, 2, 2, 2]], [[6, 4, 8, 5, 2],['4', '7', '9', '3', '2']] ]; print_r($array_int3); $length1 = count($array_int3); for($i = 0; $i < $length1; $i++) { $length2 = count($array_int3[$i]); for($j = 0; $j < $length2; $j++) { $array_int3_pd = array_product($array_int3[$i][$j]); echo '⚫︎ array_product()使用後'; print_r($array_int3_pd); } } ?> |
実行結果
配列にインデックスを2つ指定することで、3次元配列の中にある1次元配列の値の積を計算することができます。
こちらは多重for文を使用して、3次元配列にある全ての1次元配列の値の積をそれぞれ計算しています。
range()で作成した配列の値の積を計算する場合
array_product()は、range()で作成した配列の値の積を計算することができます。
そもそもrange()とは、指定した範囲内から連続する要素を持つ配列を作成する関数になります。
⚫︎ index.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | <?php echo '⚫︎ range()で作成した配列-1'; $array_range1 = range(1, 5); print_r($array_range1); echo '⚫︎ array_product()使用後-1'; $array_range1_pd = array_product($array_range1); print_r($array_range1_pd); echo '⚫︎ range()で作成した配列-2'; $array_range2 = range(-6, -2); print_r($array_range2); echo '⚫︎ array_product()使用後-2'; $array_range2_pd = array_product($array_range2); print_r($array_range2_pd); ?> |
実行結果
range()によって数値の配列が作成され、その配列にarray_product()を使用することで値の積を計算することができます。
そのため、配列内の値が掛け算され、「120」と「-720」が表示されています。
もし、range()について詳しく知りたい場合は下記の記事をご参考ください。
配列の値の合計を計算する場合
配列の値の合計を計算する場合は、array_sum()を使用します。
array_sum()とは、指定した配列の要素の合計値を取得する関数になります。
⚫︎ index.php
1 2 3 4 5 6 7 8 9 | <?php echo '⚫︎ 対象の配列'; $array_int = [56, 87, 110, 43, 29]; print_r($array_int); echo '⚫︎ array_sum()使用後'; $array_int_sum = array_sum($array_int); print_r($array_int_sum); ?> |
実行結果
array_sum()によって指定した配列の要素の合計値が計算されています。
そのため、「325」が表示されています。
もし、array_sum()について詳しく知りたい場合は下記の記事をご参考ください。
まとめ
⚫︎ array_product()とは配列の値の積を計算する関数である
⚫︎ array_product()を使用するには1つのパラメータが必須となる
・ 対象の配列(必須)
⚫︎ 配列の値が整数である場合にarray_product()を使用すると、値の積が計算される
⚫︎ 配列の値が小数である場合にarray_product()を使用すると、値の積が計算される
⚫︎ 配列の値が文字列である場合にarray_product()を使用すると、「0」が返ってくる
⚫︎ 配列の値が文字列の数値である場合にarray_product()を使用すると、値の積が計算される
(文字列でも数値であれば計算は行われる)
⚫︎ 数値と文字列が混合している配列にarray_product()を使用すると、「0」が返ってくる
(計算されない)
⚫︎ array_product()は連想配列の値の積を計算することができる
⚫︎ array_product()で多次元配列の値の積を計算するにはfor文を使用する
⚫︎ array_product()はrange()で作成した配列の値の積を計算することができる
⚫︎ 配列の値の合計を計算する場合は、array_sum()を使用する