PHPの配列の要素数を取得する方法についてです。
僕は最初Javaから入ってPHPを勉強しました。
基本的な構文などは似たようなものですが、ちょこちょこ違うんですよね。
Javaでは配列のオブジェクトのlengthプロパティを参照する形でしたが、PHPではcountという関数を使います。
PHPの配列の要素数を取得する関数count()の使い方
PHPの配列の要素数を取得するには count() を使います。
使い方は簡単で引数に配列を渡すだけです。
これで int 型の要素数が返ってきます。
実際にやってみましょう。
1 2 3 |
$ary = array("東京", "大阪", "北海道", "沖縄"); $count = count($ary); var_dump($count); |
出力結果は以下のようになります。
1 |
int(4) |
要素数が取得できましたね!
ちなみに配列が空だったら 0 が取得できます。
連想配列の場合はどうなる?
この count() は、連想配列の場合も同じです。
1 2 3 |
$ary = array("tokyo" => "東京", "osaka" => "大阪", "hokkaido" => "北海道", "okinawa" => "沖縄"); $count = count($ary); var_dump($count); |
これを出力すると、
1 |
int(4) |
となります。
連想配列もキーの持ち方がちょっと違うだけで配列は配列ですからね。
でも多次元配列だったらどうなるの?
多次元配列の場合どうなるの?
多次元配列というのは、配列の中の要素が配列になっているものです。
2次元配列を作ってcountを出力してみました。
1 2 3 4 5 |
$ary = array( "japan" => array("東京", "大阪", "北海道", "沖縄"), "usa" => array("ワシントン", "ニューヨーク", "ロサンゼルス")); $count = count($ary); var_dump($count); |
出力結果は次のようになりました。
1 |
int(2) |
親って言うんかな?1次元目?
とにかく外側の配列の要素数だけを返してくれるようです。
もし仮に全ての要素の数を取得したい場合は次のようにcount()の第二引数に COUNT_RECURSIVE をセットします。参考:php.net
1 2 3 4 5 |
$ary = array( "japan" => array("東京", "大阪", "北海道", "沖縄"), "usa" => array("ワシントン", "ニューヨーク", "ロサンゼルス")); $count = count($ary, COUNT_RECURSIVE); var_dump($count); |
これで1次元目と2次元目全ての要素数の合計を出してくれます。
出力結果は以下のようになります。
1 |
int(9) |
町名の数は7個だから 7 と思った人もいるかもしれません。
japan と usa の要素もあるのでそれを足して9ということですね。
まとめ
PHPで配列の要素数を取得するにはcount()を使います。
多次元配列で全ての要素数を取得する場合には第二引数に COUNT_RECURSIVE をセットします。
DBアクセス時など、PHPで配列を扱う場面はかなり多いです。
要素数を取得する場面も多くなると思うのでうまく活用してください。
コメントを残す