こんにちは、大学院でIT系の研究を専攻している、ひらりんです。
PHPはサーバーサイドで動く言語で、世界中の多くのWebサイトがPHPによって記述されています。一括してコンパイルするのではなく、実行時に一行ずつコンパイルされることから、随時コードを確認できるのも、初心者が取り掛かりやすい理由のひとつです。
本記事では、PHPのcountについて説明します。プログラムにおいて、文字列や配列、条件を満たしている要素数を数えることがあるでしょう。しかし、他の言語のメソッドとの違いや、数える対象によってメソッドが異なり、混乱しちゃうことがありますよね。
PHPのcountについて基本的な扱い方を説明し、実際にプログラムに組み込むことを想定した解説も行うので、PHPの学習を始めた方やプログラムを書く予定の人はぜひ読んでみてください!
目次
プログラムにおけるcountとは?
配列に格納されたデータを扱う際に、「何人分のデータがあるのか?」や「この条件を満たす人って何人いるか?」といった情報が必要な場合がありますよね。しかし、配列データの形は崩したくなかったり、別配列を準備するのも手間だったりします。
また、プログラムにおいて、「入力された文字列が何文字か?」や文字数によって処理内容を変更したい場面もあります。
そんなときに、countはとても有効的なメソッドです。countを使うことで、配列や文字列の数を調査することができます。要素の数が分かったりすると、ループ処理の回数などを可視化でき、プログラミングにおいて覚えておくべき機能と言えるでしょう。
PHPのcount
では、PHPのcountについて見ていきましょう。今回は、実際に実際にプログラムで使用することを想定して、「配列の要素数のカウント」と「条件にマッチする要素数のカウント」、「文字列のカウント」の3つの操作について扱います。
それぞれの使用場面を想定して、おすすめのメソッドの基本構文や実際のコードを用いて解説するので、ぜひメソッドの意義や使い方を理解してください!
配列の要素数を数える
1つ目は、配列の要素数を数える場面です。配列の要素数を数えるには、count関数が適しています。まずは、count関数の基本構文について見てみましょう。
count関数の基本構文
1 |
count(調査対象の配列) |
count関数の使い方は、このようになります。countの直後の小括弧()内に、要素数を調査したい配列を指定します。こうすることで、指定した配列に格納されている要素数を数えることができます。
またcount関数は、配列の数え方をしていできます。次のように、モードを指定することで、ただ単に要素数を数えるだけでなく、用途に合わせた数え方が選べます。例えば、配列内に格納されている配列の数も含めてカウントしたい場合は、再帰的にカウントするようにしたいので、モードを”COUNT_RECURSIVE”とします。
1 2 3 4 5 |
// モード指定する場合の構文 count(調査対象の配列,モード) // 再帰的に要素数を数える場合 count(調査対象の配列,COUNT_RECURSIVE) |
では、これらの構文を用いた、実際のプログラム例を見てみましょう。
実践プログラム例
1 2 3 4 5 6 7 8 9 10 11 12 13 |
// 配列を定義 $animal = ["Dog", "Cat", "Mouse"]; $pets = ["Horse", "Turtle", $animal]; // 配列内の要素数をカウントし、結果を変数に格納 $ans1 = count($animal); $ans2 = count($pets); $ans3 = count($pets, COUNT_RECURSIVE); // 結果を表示 echo $ans1; // "3"と表示される echo $ans2; // "3"と表示される echo $ans3; // "6"と表示される |
2,3行目で、配列を定義しました。なお、3行目の配列$petsには、$animalが格納されています。
6,7行目では、それぞれ$animalの要素数、$petsの要素数を数えて、変数に格納しています。また、8行目のcount関数では、モードをCOUNT_RECURSIVEと指定したため、再帰的にカウントした結果を変数に格納しています。
11~13行目では、カウントした結果を格納した変数をそれぞれ表示されていて、たしかに配列の要素数がカウントされたことが確認できます。
条件にマッチする要素数を数える
続いて、条件にマッチする要素数の数え方について取り上げます。配列に格納されている特定の値の個数を知りたい場合は、array_count_values関数が有効的なメソッドです。
array_count_values関数は、配列内の要素ごとに数をまとめて表示できます。それでは、基本構文を見てみましょう。
array_count_values関数の基本構文
1 |
array_count_values(調査したい配列); |
array_count_values関数の使い方は、このようになります。array_count_valuesの直後の小括弧()内に、調査したい配列を指定します。こうすることで、配列に格納されている要素ごとに数をまとめることができます。
実践プログラム例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
// 配列を定義 $animal = ["dog", "cat", "mouse", "mouse", "dog", "mouse", "cat"]; // array_count_values関数を使用して、要素ごとの数を調査 $ans = array_count_values($animal); // $ansを表示 echo $ans; /* 以下のように表示される Array ( [dog] => 2 [cat] => 2 [mouse] => 3 ) */ // $animal内の"dog"の数のみ調査 echo $ans["dog"]; // "2"と表示される |
2行目で定義された配列$animal内の要素ごとの数を表示してます。また、条件に合った配列の要素数のみを調査することもできます。順に見てみましょう。
5行目で、array_count_values関数を用いて、要素ごとに数をまとめられた結果を変数$ansに格納しています。8行目で、その結果を表示しており、表示内容は10~15行目のようになります。$animal内には、”dog”が2個、”cat”が2個、”mouse”が3個なので、その結果が表示されます。
また、条件に合った要素数のみ取り出したい場合は、array_count_valuesメソッドを用いた結果に対して、19行目のように変数に対して条件を書くことで、データを限定できます。ここでは、”dog”の個数のみ調べたいので、$ans[“dog”]と記述されています。
文字列を数える
最後に文字列の長さを数える方法について説明します。指定した文字列の文字数を数えるときは、mb_strlen関数が有効的です。”count”という文字が含まれていませんが、数えることができます。それでは、使い方を見てみましょう。
mb_strlen関数の基本構文
1 |
mb_strlen(文字列) |
mb_strlen関数の使い方は、このようになります。mb_strlenの直後の小括弧()内に、調査したい文字列を指定します。こうすることで、文字列の長さを取得することができます。
それでは、実際のコード例を見てみましょう。
実践プログラム例
1 2 3 4 5 6 7 8 |
// 文字列を定義 $greeting = "私は20歳です"; // mb_strlen関数を使用して、文字数を調査 $ans = mb_strlen($greeting); // $ansの文字数を表示 echo $ans; // "7"と表示される |
2行目で文字列を定義しています。5行目でmb_strlen関数を使用して、$greetingの文字列の長さを取得しています。文字数の「7」が変数$ansに格納され、8行目でその結果が表示されています。
まとめ
いかがでしたでしょうか?今回は、PHPのcountについて説明しました。
PHPのcountでは、count関数やarray_count_values関数を用いることで、文字列や配列、条件を満たす要素数などを簡単に数えることができる、プログラムには欠かせないメソッドなので、ぜひ理解を深めて、Webサービス作成やシステム構築に活かしてください。