配列内の要素数をcount関数で取得する方法【PHP】

最終更新日:

公開日:2024-11-01

ページ内に広告が含まれています。
配列内の要素数をcount関数で取得する方法【PHP】

開発やWordpressなどの動的出力をする際に、配列内の要素の数を出力したい、配列内の要素の数だけループしたいといった事があります。
今回は、そんな時に使用できる配列内の要素数を数える事が出来るcount関数について詳しく解説していきます。

count関数とは

count関数とは、要素の数を数える事が出来る関数です。
開発や動的出力時の処理として要素数を数える事はよくあり、非常に使う頻度が高い関数となります。
基本的な使い方や、応用については以下の項目で解説していきます。

count関数の基本的な使い方

まず最初に、count関数の基本的な使い方です。以下のように記述します。

$arr = array("apple","orange","grape");
echo count($arr);

// 実行結果:3

count関数の第1引数に配列を指定する事で、配列内の要素数を数える事ができます。
このように、簡単に要素数を数える事が可能です。

要素の数だけループする

count関数で配列内の要素数を取得し、そのまま出力する事はあまり多くはありません。
実際の作業としては要素の数だけループする、という方が多いかと思います。

以下のように記述する事で、配列内の要素数分だけループする事が可能です。

$arr = array("apple","orange","grape");
for ($i = 0; $i < count($arr); $i++) {
    echo $arr[$i]."<br>";
}

/*

実行結果
↓
apple
orange
grape

*/

上記のように、for文を使用しcount関数で取得した要素の数だけループして出力しています。

連想配列内の要素数を数える

続いて、先程のような単純な配列(添字配列)だけではなく、連想配列でも要素の数を数える事ができます。まずは先程と同じようにcount関数で要素数を数えてみます。

$arr = array(
    "赤"=>["リンゴ","イチゴ","トマト"],
    "緑"=>["メロン","キュウリ","ピーマン"],
    "黄"=>["バナナ","パイナップル","レモン"]
);
echo count($arr);

// 実行結果:3

先程と同じようにcount関数で要素数を数えると、連想配列のキーの数だけ数えてしまいます。
連想配列のすべての要素を数えるには、count関数の第2引数にCOUNT_RECURSIVE(または1)を指定します。

$arr = array(
    "赤"=>["リンゴ","イチゴ","トマト"],
    "緑"=>["メロン","キュウリ","ピーマン"],
    "黄"=>["バナナ","パイナップル","レモン"]
);
echo count($arr,COUNT_RECURSIVE);

// 実行結果:12

このように、COUNT_RECURSIVE(または1)を指定すると、全ての要素数を数えるため、$arr直下の配列数(3)とその配列それぞれの要素数(3・3・3)を合わせた12が出力されます。
連想配列だけではなく、多次元配列でも使用可能です。

孫配列の要素数のみを数える

あまり使う機会は多くはないかと思いますが、先程の連想配列のキーを除く要素数を数えるには以下のようにする事で取得可能です。

$arr = array(
    "赤"=>["リンゴ","イチゴ","トマト"],
    "緑"=>["メロン","キュウリ","ピーマン"],
    "黄"=>["バナナ","パイナップル","レモン"]
);
echo count($arr,COUNT_RECURSIVE) - count($arr);

さいごに

いかがでしたでしょうか。
今回は、count関数の基本的な使い方や配列内の要素数をcount関数で取得する方法を解説しました。
この関数はよく使用しますので、基本的な使い方はもちろん、応用までしっかりと覚えておいてください。

おすすめ記事

当ブログ運営者 ヒデ

北海道札幌市在住のフリーランスでWeb制作を行っているヒデです。Webコーディング(HTML・CSS・JSなど)やWordpressのカスタマイズ等のテクニック、困った時に確認できる分かりやすい解説を目標にして情報を発信していければと思っています。プロフィールはこちら

当サイトに関するご意見・ご感想・ご要望または仕事のご依頼は以下のフォームよりお願い致します。

お問い合わせ お仕事のご依頼
PAGE TOP