こんにちは!エンジニアのノムラです。
PHPでは、配列の要素の数をカウントする関数、count関数があります。この記事では、
- 配列の要素の数をカウントする方法
- 連想配列の要素の数をカウントする方法
という基本的な内容から、
- 実践に近い使い方
- その他配列を扱う関数について
などの応用的な内容に関しても解説していきます。PHPでは、配列を使う場面が多くあるので、しっかりマスターしていきましょう!
count関数とは
count関数では、配列や連想配列の要素の数をカウントすることができます。
書き方:
count( $配列名 [, モード ])
引数:第一引数には対象の配列名を指定します。
第二引数のCOUNT_RECURSIVE (または 1)を指定した場合は、再帰的に配列をカウントします。多次元配列の全ての要素をカウントするときなどに使用します。再帰的とは、自分自身も定義されるということになりますが、詳しくはこのあと解説したいと思います。
返り値:配列の要素数を返します。
実際に使ってみよう
count関数の使い方がわかったところで、実際に配列や多次元配列の要素数を数えてみましょう。
配列の要素数をカウント
まずは、配列の要素の数をカウントしてみましょう。
サンプルプログラム
$fruits = ['apple', 'orange', 'melon', 'banana', 'pineapple']; //配列の長さを調べる $array_count = count($fruits); echo 'count : '.$array_count;
実行結果:
count : 5
$fruitsに格納されているフルーツ名がすべてカウントされ、5が返ってきていますね。このようにcountを使用すれば配列の要素数を簡単に取得できます。
連想配列の要素数をカウント
count関数は、配列だけでなく連想配列の要素数もカウントすることができます。その場合、第二引数にCOUNT_RECURSIVE (または 1)を指定します。
COUNT_RECURSIVE (または 1)を指定しないと、キーの数のみカウントされてしまいます。まず、第二引数を指定せずにカウントしてみましょう。
サンプルプログラム
実行結果:
count : 3
上のプログラムだと、キー名である、red、yellow、greenの3つのキー名だけがカウントされていることがわかります。
次に、COUNT_RECURSIVE (または 1)を指定して、連想配列のすべての要素の数をカウントしてみましょう。
サンプルプログラム
実行結果:
count : 8
$fruitsの中の配列の数に加え、それぞれの配列の中の値の数までカウントされ、8が返ってきています。このとき、$fruits内の配列の中にある5つの要素だけ数えるのではなく、$fruits内の3つの配列自体も数えられているため、再帰的にカウントされているといえます。
要素の数だけループする
count関数の基本的な使い方についてわかったところで、より実践的にcount関数をつかってみましょう。今回はcount関数を使用して、配列の長さ(要素数)分ループして、配列の値を取得したいと思います。
以下にcount関数を使用して、配列をループする方法を記述します。
サンプルプログラム
$fruits = ['apple', 'orange', 'melon', 'banana', 'pineapple']; for ($i = 0 ; $i < count($fruits); $i++){ echo $fruits[$i]; echo '<br>'; }
実行結果:
apple orange melon banana pineapple
サンプルでは、for文の中でcount関数を使用して要素数を取得し、ループごとに変数$iをインクリメントして配列の要素数に達したらfor文を抜けています。配列でループする方法については、以下の記事でも詳しく解説しています。
array関数についてもっと知りたい方へ
PHPには他にも配列を扱う関数がたくさんあります。
以下の記事では、
- 配列の合計を知りたい場合
- 配列から重複する値を消したい場合
- 配列のすべての値を取得したい場合
- 配列のキーを取得したい場合
- 指定したキーが配列にあるか調べたい場合
などの、配列を扱う上で知っていたら便利だったり、必要な場面がよくある関数についてまとめています。ぜひ参考にしてみてくださいね!
まとめ
ここでは、配列の要素数をカウントする方法として、
- count関数の使い方
- 連想配列の要素数をカウントする方法
- 実践に近い使い方
などについて解説しました。配列の長さを調べる方法については実際の開発でも使用する機会が多いので、ぜひ覚えておきましょう。もし、配列の要素数を取得する方法を忘れてしまったら、この記事を思い出してくださいね!