PHPで配列の要素数を調べるにはcount関数が便利です。
多次元配列で、配列の中の配列まで再帰的にカウントする方法もご紹介します。
countを付けるだけで簡単に件数を表示させたり、繰り返し処理の際に使ったりできます。
count関数
count関数の基本
配列を出力する際にcount関数を使います。
1 2 3 4 5 |
// 配列を変数に格納する $citys = array('神奈川','大阪','福岡'); // countで配列にある値の個数を数える echo count($citys); |
3
3個の要素数が出力されました。
多次元配列のカウント
多次元配列などで入れ子になった配列をカウントする場合、再帰的にカウントすることができます。
通常にカウントした場合と、再帰的にカウントした場合を比較してみましょう。
通常のカウント
1 2 3 4 5 6 7 8 |
// 配列の中に配列を作る(多次元配列) $arr = array( 'asia'=>array('tokyo','beijing','seoul'), 'usa'=>array('washington','new-york') ); // カウントする echo count($arr); |
2
通常にカウントすると、外側の配列だけカウントされ「2」と表示されました。
再帰的なカウント
1 2 3 4 5 6 7 8 |
// 配列の中に配列を作る(多次元配列) $arr = array( 'asia'=>array('tokyo','beijing','seoul'), 'usa'=>array('washington','new-york') ); // 第二引数に 1 を付けてカウント echo count($arr, 1); |
7
再帰的にカウントすると、配列の中の配列までカウントし「7」と表示されました。
count関数の構文
count (カウントする配列 [ , COUNT_RECURSIVE または 1 ]([ ]は省略可)));
通常はカウントする配列を指定するだけですが、再帰的にカウントする場合、第二引数にCOUNT_RECURSIVE
または1
を指定します。
空文字のカウント
1 2 3 4 |
// 空文字系のカウント echo count(NULL); // 0 echo count(''); // 1 echo count(false); // 1 |
0
1
1
空文字系は上記の出力結果となります。
count関数を使って配列の値を一つずつ出力する
for()
を使って配列の値を一つずつ出力してみましょう。
1 2 3 4 5 6 7 8 9 10 |
// 配列を変数に格納する $citys = array('神奈川','大阪','福岡'); // 配列の値をカウントする $cnt = count($citys); // for文でループし、配列の値を一個ずつ出力 for ($i=0; $i < $cnt; $i++) { echo $citys[$i]; } |
神奈川 大阪 福岡
配列の値の数をカウントし、その数までループ処理させています。
参考:PHPのfor文で繰り返し処理(HTML埋め込みでもスッキリな書き方も)
ただ、配列の繰り返し処理ならforeach()
が便利です。
ちなみにPHPには同様に配列の長さを返すsizeof()
という関数もありますが、count()
のエイリアス(別名)なので、count()
を使えばよいでしょう。