【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関数を使えば簡単に配列の要素数を知ることができましたね!

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


33歳、未経験だった僕がフリーエンジニアになれた理由
現在フリーでWEBエンジニアをやられている濱口直行さん。33歳で、プログラミングを学び始め、約半年という短い期間で独立までされた学習ログを余すことなくインタビューさせていただきました。

プログラミングを学習中の方はもちろん、独立をお考えの方まで幅広く活用できる記事になっています。この機会に是非活用していただければと思います。


最短でプログラミングを習得したい方へ

元々ITリテラシーのある方やプログラムの学び方がわかっている方は独学で習得することも可能でしょう。

ただし、実際の学習期間中はつまづいている時間がほとんどです。

「もう挫折したくない」
「本業と両立しながら、好きな時間で自分のペースで勉強を続けていきたい。」
「自分だけのカリキュラムで効率的に勉強したい」

そんな方はお気軽に侍エンジニア塾までご相談ください。

弊社では、

  • プログラミング基礎学習
  • オリジナルアプリ開発
  • 仕事獲得

までをひと通り学習できます。

まずは無料体験レッスンで、弊社のコンサルタントと一緒にあなた専用の学習方法やカリキュラムを考えてみませんか?

挫折しない学び方や、通常1000時間以上かかる学習時間を1/3にする方法などより具体的なアドバイスもさせていただいています。

詳しくは下の画像をクリックして弊社サービス内容をご確認ください。

cta1

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

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


LINEで送る
Pocket

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

最新情報をお届けします

書いた人

オータケ

オータケ

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