PHPのcount関数を使って配列の要素の数をカウントする方法【初心者向け】

プログラミング初心者向けにPHPのcount関数を使って配列の要素の数をカウントする方法について解説しています。変数やオブジェクトに含まれる要素を数えたい時に便利です。ソースコードを書きながら説明しているので、ぜひ参考にしてみてください。

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営する教育×テクノロジーのWebメディアです。初心者でもすぐ勉強できる記事が2,000以上あります。

PHPのcount関数の使い方について解説しています。

配列の要素の数や変数に含まれる要素の数などを取得したい場合に便利なので、ぜひ書き方を覚えておきましょう。

そもそもPHPが何か分からない場合は、先にPHPとはの記事をご覧ください。

 

なお本記事は、TechAcademyのPHPオンライン講座の内容をもとにしています。

今回の記事の内容は動画でもご覧いただけます。
テキストよりも動画の方が理解しやすいという場合はぜひご覧ください。

 

countとは

countは配列の要素の数を数え、それを数値として返す関数です。

 

大石ゆかり

田島メンター!配列に、いくつ要素があるのかわからないんですが、何か良い関数は無いでしょうか?

田島悠介

こんな時、countを使用するんだ。countは配列の要素数を数えてくれるよ。

大石ゆかり

要素の数がわかると、ループ処理で使えそうですね。

田島悠介

その通り!。何回処理すればいいかわかるからね。countの書き方などを見てみよう!

 

countの書き方

countは、以下のように記述します。

count(要素を数える配列,モード)

( )内に要素の数を数えたい配列を入れます。

また、再帰的に要素を数える場合は「モード」の部分にCOUNT_RECURSIVEと入力します。このパラメータは使用しない場合は省略が可能です。

 

[PR] PHPのプログラミングで挫折しない学習方法を動画で公開中

実際に書いてみよう

例1

<!DOCTYPE html>
<html>
  <head> 
    <meta charset="utf-8" />
  </head>
  <body>
    <?php
      $arr = array(10,20,30);
      $cnt = count($arr);
      echo $cnt;
    ?>
  </body>
</html>

ここでは3つの数値が格納されている配列$arrを作成し、次にcountで処理した値を変数$cntに格納します。最後に$cntの値をechoによって出力します。

画面では以下のように表示されます。配列$arrには数値の「10,20,30」の3つの要素が入っているため$cntの値は”3″となり、それが表示されます。

php_count_1

 

例2

配列の中に配列が入っている場合の例です。

まず「1,2,3」という3つの数値が格納された配列$arr1と、「”a”,”b”,”c”」という3つの文字列が格納された配列$arr2を作成します。
次にその配列$arr1$arr2の2つが格納された配列$arr3を作成し、その要素の数をcountを使用して数えます。

ここではCOUNT_RECURSIVEのオプションを使用しない場合と使用する場合の二通りで結果を表示します。

まず最初にCOUNT_RECURSIVEを入れずにそのままcountを使用した場合です。

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
  </head>
  <body>
    <?php
      $arr1 = array(1,2,3);
      $arr2 = array("a","b","c");
      $arr3 =array($arr1,$arr2);
      echo count($arr3);
    ?>
  </body>
</html>

画面ではこのようになります。

$arr3には「$arr1$arr2」という2つの要素が入っているため、画面では2と表示されます。

php_count_2r

次に、同様の配列を任意のパラメータであるCOUNT_RECURSIVEを使い再帰的にカウントした場合の例です。

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
  </head>
  <body>
    <?php
      $arr1 = array(1,2,3);
      $arr2 = array("a","b","c");
      $arr3 =array($arr1,$arr2);
      echo count($arr3,COUNT_RECURSIVE);
    ?>
  </body>
</html>

画面ではこのように表示されます。$arr3内の配列を含むすべての要素($arr1$arr2とその各要素)がカウントされ、”8″と表示されます。

php_count_3

例えば以下のような場合でも、$arr2countした場合は通常では”3″となりますが、COUNT_RECURSIVEを使用すると”6″が値として返されることになります。

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
  </head>
  <body>
    <?php
      $arr1 = array(1,2,3);
      $arr2 = array(5,6,$arr1);
      echo count($arr2,COUNT_RECURSIVE);
    ?>
  </body>
</html>

 

おわりに

PHPのcount関数を使って配列の数を取得する方法について解説しました。

PHPをさらに勉強したい場合は、PHPで構文チェックを行う方法PHPとHTMLをまとめてコメントアウトする方法についても合わせて読んでみてください。

大石ゆかり

count関数はわかったんですが、配列の配列って難しいですね。

田島悠介

そうだね。ちゃんと考えを整理していないと、戸惑うかもしれないね。

大石ゆかり

配列の中に配列が入っている例って何かありますか?

田島悠介

例えば、記事を3件取得したとするよね。その記事それぞれにタイトルと内容がある。そういう場合、[0][‘title’]、[0][‘body’]という感じになります。

 

また、PHPを勉強していて、

  • もっと効率的に勉強したい
  • 誰かに聞きながら学びたい
  • 自分でWebサービスを作りたい

と思ったことはないでしょうか。

 

そんな方のために、TechAcademyではオンラインブートキャンプPHP/Laravelコースを提供しています。

現役エンジニアがパーソナルメンターとして受講生に1人ずつつき、マンツーマンのメンタリングで学習をサポートし、最短4週間でオリジナルWebサービスを開発することが可能です。

独学に限界を感じている場合はご検討ください。