Developer

【PHP基礎】様々な関数④ 配列関数その1 array_sum array_search count
2020.12.31
Lv1

【PHP基礎】様々な関数④ 配列関数その1 array_sum array_search count

この記事では、
配列の合計を求めるarray_sum、
配列に特定の値があるか調べるarray_search、
配列の要素数を数えるcount、
を順番に説明します。

array_sum関数

array_sum関数は、数値型の要素のみが中に入っている、
単純な配列に対して適用する関数です。
配列内のすべての数を足し合わせた合計を返します。

<?php
$arr=[1,2,3,4,5];
echo array_sum($arr);
?>

連想配列

連想配列の場合は、
値のみが加算されます。

以下の例では、配列のキーでなく、
値のみが加算され、
15が表示されていますね。

<?php
$arr=[
    "a" => 1,
    "b" => 2,
    "c" => 3,
    "d" => 4,
    "e" => 5];
echo array_sum($arr);
?>

値に数値以外のものがある配列

数値以外の値は無視されます。
以下の例では、配列の最初の要素の値”a”は無視され、
数値のみが加算され、14が表示されていますね。

<?php
$arr=["a",2,3,4,5];
echo array_sum($arr);
?>

実用例

フォームで、合計値を表示する場合に使います。

入力画面
<!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>
結果画面
<?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関数

配列の中に特定の要素があるか調べる関数です。

<?php
$arr = ["jp" => "日本", "us" => "アメリカ",  "br" => "ブラジル"];
$code = array_search("日本", $arr);
if ($code != false) {
    echo "日本のコードは $code です。";
} else {
    echo "日本のコードが見つかりません。";
}
?>

count関数

配列の要素数を調べる関数です。
再帰モードの時は、内部に入れ子になった
配列の要素数も、別個に集計します。

<?php
$arr = [ 10, "hello", [1, 2, 3]];// 通常モード
echo count($arr);
echo "<hr>";
// 再帰モード
echo count($arr, COUNT_RECURSIVE);
?>

PHP基礎 連載目次リンク

PHP基礎 連載目次