この記事では、
配列の合計を求めるarray_sum、
配列に特定の値があるか調べるarray_search、
配列の要素数を数えるcount、
を順番に説明します。
array_sum関数
array_sum関数は、数値型の要素のみが中に入っている、
単純な配列に対して適用する関数です。
配列内のすべての数を足し合わせた合計を返します。
1 2 3 4 | <?php $arr =[1,2,3,4,5]; echo array_sum ( $arr ); ?> |
連想配列
連想配列の場合は、
値のみが加算されます。
以下の例では、配列のキーでなく、
値のみが加算され、
15が表示されていますね。
1 2 3 4 5 6 7 8 9 | <?php $arr =[ "a" => 1, "b" => 2, "c" => 3, "d" => 4, "e" => 5]; echo array_sum ( $arr ); ?> |
値に数値以外のものがある配列
数値以外の値は無視されます。
以下の例では、配列の最初の要素の値”a”は無視され、
数値のみが加算され、14が表示されていますね。
1 2 3 4 | <?php $arr =[ "a" ,2,3,4,5]; echo array_sum ( $arr ); ?> |
実用例
フォームで、合計値を表示する場合に使います。
入力画面
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | <!DOCTYPE html> <html lang= "ja" > <head> <meta charset= "UTF-8" > <meta name= "viewport" content= "width=device-width, initial-scale=1.0" > <title>参加者内訳</title> </head> <body> <form action= "./Sample_array_sum_result.php" method= "post" > <div> <label for = "male" >男性</label> <input type= "number" name= "male" id= "male" min= "0" max= "100" step= "1" ><span>%</span> </div> <div> <label for = "female" >女性</label> <input type= "number" name= "female" id= "female" min= "0" max= "100" step= "1" ><span>%</span> </div> <div> <label for = "other" >その他</label> <input type= "number" name= "other" id= "other" min= "0" max= "100" step= "1" ><span>%</span> </div> <button type= "submit" class = "btn btn-primary" >提出</button> </form> </body> </html> |
結果画面
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | <?php $total = [ "male" => $_POST [ "male" ], "female" => $_POST [ "female" ], "other" => $_POST [ "other" ] ]; echo "男性" . $_POST [ "male" ]. "%<br>\n" ; echo "女性" . $_POST [ "female" ]. "%<br>\n" ; echo "その他" . $_POST [ "other" ]. "%<br>\n" ; $total_sum = array_sum ( $total ); echo "合計" . $total_sum . "%<br>\n" ; if ( $total_sum !== 100){ echo "合計が100パーセントになっていません<br>\n" ; } else { echo "合計が100パーセントです<br>\n" ; } ?> |
array_search関数
配列の中に特定の要素があるか調べる関数です。
1 2 3 4 5 6 7 8 9 | <?php $arr = [ "jp" => "日本" , "us" => "アメリカ" , "br" => "ブラジル" ]; $code = array_search ( "日本" , $arr ); if ( $code != false) { echo "日本のコードは $code です。" ; } else { echo "日本のコードが見つかりません。" ; } ?> |
count関数
配列の要素数を調べる関数です。
再帰モードの時は、内部に入れ子になった
配列の要素数も、別個に集計します。
1 2 3 4 5 6 7 | <?php $arr = [ 10, "hello" , [1, 2, 3]]; // 通常モード echo count ( $arr ); echo "<hr>" ; // 再帰モード echo count ( $arr , COUNT_RECURSIVE); ?> |