【PHP入門】配列の要素数を知る方法

image (2)
オータケ
書いた人 オータケ

こんにちは!エンジニアのオータケです!

PHPでWebサイトを構築する際に配列をよく使うかと思います。
その配列を扱う際に配列の要素数が幾つか知りたいと思ったことありますよね?

この記事では

・count/sizeof関数を使って配列の要素数を取得する方法
・count関数の便利な使い方

といった基本的な内容から

・array_fill関数を使い要素数を決めて配列を初期化する方法

といった応用的な解説もします。

今回はそんな配列の要素数について、わかりやすく解説します!

配列の要素数を知る

count

まず、配列の要素数を知るためにはcount関数を使うことで知ることができます。

このcount関数ですが使い方がとても簡単です。

引数に要素数を知りたい配列を与えるだけで要素数を返すという関数です。

では実際にサンプルコードをみてみましょう。

実行結果:

このコードでは配列に1,2,3,4という値を入れて初期化しています。

そしてcount関数を使い要素数を取得しているというものです。

配列には4つの要素があるためこのcount関数を呼び出した結果は4になります。

とても簡単ですよね?

では次にcount関数の便利な使い方を見てみましょう。

実行結果:

このコードでは先程とは少し違い第二引数に何やらCOUNT_RECURSIVEという値を渡しています。

そして実行結果は12と表示されます。

実はcount関数を呼び出す際にCOUNT_RECURSIVEという値を指定することで多次元配列を再帰的にカウントしてくれるのです。

わかりやすく言えば、複雑な配列の構造であっても全ての要素数をカウントしてくれるという設定になります。

では今回なぜ12という結果が返ってきたかを解説します。

まず1~9までの配列の要素数がそれぞれ9個、そして[1, 2, 3]と[4, 5, 6]、[7, 8, 9]の3つの配列があるということで「9+3」で12個という結果になっています。

ぱっと見、9個と勘違いしてしまいそうですがそうではないので注意が必要ですね。

もしこのCOUNT_RESURSIVEを指定しないで前回のコードのようにcount関数を呼んだ場合、3になります。

なぜ、3となるのかですがこれは配列変数$arrayの中に[1, 2, 3]と[4, 5, 6]、[7, 8, 9]の3つの配列が入っているため実行結果では3と表示されます。

sizeof

次にsizeof関数を使って配列の要素数を知る方法を解説します。

実行結果:

前項の一番最初のサンプルコードとの違いとしてはcount関数がsizeofに変わったくらいです。

それもそのはず。
このsizeof関数は内部的にcount関数を呼んでおり実際にはcount関数を呼んでいることに変わりはありません。

ではなぜこのような関数があるかですが、これはC言語にsizeof関数がありこういったプログラマに対する配慮ではないかと考えます。

ちなみに先程のcount関数の第二引数で指定したCOUNT_RESURSIVEも使うことができます。

あらかじめ要素数を決めて初期化したい

少し話は変わりますが要素数を決めて配列を初期化したい場合にどうすればよいでしょうか?

今までは既にある配列の要素数を知るという方法でした。

この項ではあらかじめ要素数を決めた上で配列の値を初期化する方法について見ていきましょう。

実行結果:

このコードではarray_fill関数を使って要素数を決めて特定の値で埋めています。

3行目の第1引数で0を渡していますがこれは要素番号が何番目から始まるかを指定しています。

第2引数はいくつの要素で初期化するかを決めています。
今回は10個の要素で初期化をするという処理を書いています。

第3引数は初期化する値を決めています。
今回は0で初期化しています。

そしてこのarray_fill関数は戻り値として新しい配列を生成して返す仕組みとなっています。

このようにすることで要素数を決めて配列を初期化することができます。
最初から配列の要素数が決まっている場合はこのような形で書いてもいいかもしれません。

まとめ

いかがでしょうか。

配列の要素数を知る方法を解説しました。

count関数を使えば簡単に配列の要素数を知ることができましたね!

もし、配列の要素数について知りたいときはこの記事について思い出してくださいね!

現役フリーランスエンジニアによる無料体験レッスン実施中!

もし、あなたが、

  • 経験、年齢、学歴に不安がある
  • 挫折しない学習方法が知りたい
  • アプリ開発で困っている
  • エンジニアの”生”の声が聞きたい!
  • 仕事獲得の仕方がわからない
  • エンジニアに転職したいが何をすればいいかわからない

など、プログラミング学習やキャリアのことでお困りであれば、まずは『無料体験レッスン』にお申し込み下さい。

あなたにとって、最適の解決策をご提案させていただきます。

詳しくは下の画像から詳しいサービス内容をご確認ください。

cta_mtm3

プログラミング学習者必見

専属講師に質問し放題、レッスンし放題、最短1ヶ月でフリーランスエンジニア
プログラミング学習カリキュラム無料公開中
Ruby学習カリキュラム無料公開中
 1記事最大11,000円!テックライター募集


LINEで送る
Pocket

この記事が気に入ったら
いいね!をしてフォローしよう

最新情報をお届けします

書いた人

オータケ

オータケ

29歳、フリーランスプログラマ。中学の頃よりプログラミングに興味を持ちゲーム開発やWebサイト構築などを経験
新しいフレームワークやライブラリに興味があり革新的な機能が含まれていると泣いて喜ぶ。