PHPで数える!初心者でもわかる「count」関数の使い方と詳細10例

PHPでデータを数えるcount関数の使い方と詳細例10選のサムネイルPHP
この記事は約9分で読めます。

 

【サイト内のコードはご自由に個人利用・商用利用いただけます】

この記事では、プログラムの基礎知識を前提に話を進めています。

説明のためのコードや、サンプルコードもありますので、もちろん初心者でも理解できるように表現してあります。

基本的な知識があればカスタムコードを使って機能追加、目的を達成できるように作ってあります。

※この記事は、一般的にプロフェッショナルの指標とされる『実務経験10,000時間以上』を凌駕する現役のプログラマチームによって監修されています。

サイト内のコードを共有する場合は、参照元として引用して下さいますと幸いです

※Japanシーモアは、常に解説内容のわかりやすさや記事の品質に注力しております。不具合、分かりにくい説明や不適切な表現、動かないコードなど気になることがございましたら、記事の品質向上の為にお問い合わせフォームにてご共有いただけますと幸いです。
(送信された情報は、プライバシーポリシーのもと、厳正に取扱い、処分させていただきます。)

はじめに

この記事を読んでいただければ、PHPの「count」関数を使ってデータの数を数える方法を理解し、独自のプログラムに適用できるようになります。

さらに、10個の具体的な使用例を通じて、さまざまな状況でのcount関数の活用法を学ぶことができます。

●PHPのcount関数とは

PHPのcount関数は、配列やオブジェクトの要素数を数えるための便利な関数です。

配列やオブジェクトにどれだけのデータが含まれているかを知る必要がある場合、count関数を使用します。

○count関数の基本

基本的な使い方は非常にシンプルです。

引数に配列やオブジェクトを指定し、count関数を呼び出すだけで要素数が返されます。

この要素数は整数型(int)で返され、プログラム内で直接使用したり、後の処理の参考にしたりすることができます。

$fruits = array("apple", "banana", "cherry");
echo count($fruits); // 出力: 3

このサンプルコードでは、フルーツの名前が格納された配列を用意し、count関数でその要素数を数えています。

結果は「3」となり、配列内に3つの要素が存在することを示しています。

●count関数の使い方

それでは、count関数のさまざまな使用例を見ていきましょう。

○サンプルコード1:単純な配列の要素数を数える

$numbers = array(1, 2, 3, 4, 5);
echo count

($numbers); // 出力: 5

このコードでは、1から5までの数字が格納された配列を用意し、count関数を使ってその要素数を数えています。

配列内には5つの要素がありますので、結果は「5」になります。

○サンプルコード2:多次元配列の要素数を数える

$matrix = array(array(1, 2, 3), array(4, 5, 6), array(7, 8, 9));
echo count($matrix); // 出力: 3

このコードでは、多次元配列を用意し、count関数でその要素数を数えています。

この例では、配列内に3つの配列が含まれていますので、結果は「3」になります。

○サンプルコード3:オブジェクトのプロパティ数を数える

class Fruit {
    public $name;
    public $color;
    public $price;
}

$apple = new Fruit();
$apple->name = 'apple';
$apple->color = 'red';
$apple->price = 100;

echo count(get_object_vars($apple)); // 出力: 3

このサンプルコードでは、オブジェクトのプロパティ数を数える方法を紹介しています。

ここでは、Fruitというクラスを作り、そのプロパティとしてname、color、priceを定義しています。

そして、このクラスのインスタンスである$appleに対して、get_object_vars関数を適用し、得られた配列をcount関数に渡しています。

結果として、「3」が出力されます。

○サンプルコード4:NULL要素を数える

$array = array(1, 2, NULL, 4, NULL);
echo count($array); // 出力: 5

このコードでは、NULL要素が含まれる配列の要素数を数えています。

count関数はNULL要素も1つの要素として数えますので、この場合、結果は「5」になります。

●count関数の応用例

それでは、少し複雑な例を見ていきましょう。

○サンプルコード5:特定の値を持つ要素数を数える

$array = array(1, 2, 3, 2, 1, 2, 3, 2, 1);
$count = array_count_values($array);
echo $count[2]; // 出力: 4

このコードでは、特定の値「2」を持つ要素数を数えています。

array_count_values関数を使って各要素の出現回数を配列として取得し、その中から「2」の出現回数を表示しています。

結果として、「4」が出力されます。

○サンプルコード6:条件に合う要素数を数える

$array = array(1, 2, 3, 4, 5, 6, 7, 8, 9);
$count = count(array_filter($array, function($n) {
    return $n % 2 == 0;
}));
echo $count; // 出力: 4

このコードでは、配列内の偶数の要素数を数えています。

array_filter関数を使って配列から偶数だけを抽出し、その結果の配列の要素数をcount関数で数えています。

結果として、「4」が出力されます。

○サンプルコード7:配列の中の配列要素数を数える

$array = array(array(1, 2, 3), array(4, 5, 6), array(7, 8, 9));
echo count($array, COUNT_RECURSIVE); // 出力: 12

このコードでは、二次元配列の全要素数を数える例を紹介しています。

count関数の第二引数にCOUNT_RECURSIVEを指定することで、配列の中にさらに配列がある場合も全ての要素を数えることができます。

この場合、結果は「12」になります。

○サンプルコード8:文字列の文字数を数える

$string = "Hello, world!";
echo strlen($string); // 出力: 13

このコードでは、文字列の文字数を数える例を紹介しています。PHPでは文字列の長さを取得するにはstrlen関数を使用します。

ここでは、”Hello, world!”という文字列の長さを計算しています。

スペースも1文字としてカウントされるため、出力結果は「13」になります。

○サンプルコード9:特定のキーを持つ要素数を数える

$array = array('apple' => 1, 'banana' => 2, 'cherry' => 3, 'apple' => 4);
$count = count(array_keys($array, 'apple'));
echo $count; // 出力: 1

このコードでは、配列の中で特定のキーを持つ要素数を数える方法を紹介しています。

array_keys関数を使用して、「apple」をキーに持つ要素を抽出し、その結果の配列の要素数をcount関数で計算しています。

ただし、同じキーを持つ要素が複数存在する場合、PHPの配列では後の値で上書きされるため、出力結果は「1」になります。

○サンプルコード10:NULL要素を除外して数える

$array = array(1, 2, NULL, 4, NULL);
$count = count(array_filter($array));
echo $count; // 出力: 3

このコードでは、NULL要素を除外して配列の要素数を数える例を紹介しています。

array_filter関数を使うと、配列からNULL要素を除外することができます。

ここでは、array_filter関数を適用してNULLを除外した結果の配列の要素数をcount関数で計算しています。

その結果、「3」が出力されます。

●count関数の注意点と対処法

PHPのcount関数は非常に便利ですが、使用する際にはいくつかの注意点があります。

  1. count関数は配列の要素数を数えますが、配列以外の値を引数に取った場合、その値がNULLでなければ1を返します。
    つまり、配列でない値を引数に取ると、間違った結果を得る可能性があります。
    これを避けるためには、is_array関数を使用して引数が配列であることを確認するのが一般的な対処法です。
$value = "Hello, world!";
if (is_array($value)) {
    echo count($value);
} else {
    echo "値が配列ではありません。";
}
// 出力: 値が配列ではありません。

このコードでは、is_array関数を使って変数$valueが配列であるかどうかを確認しています。

$valueが配列でなければ、count関数を使わずにメッセージを出力します。

  1. 配列の中に配列が存在する場合(つまり多次元配列の場合)、count関数はデフォルトで最上位の配列の要素数のみを数えます。
    これは直感に反するかもしれません。
    全ての要素を数えるためには、count関数の第二引数にCOUNT_RECURSIVEを指定する必要があります。
$array = array(array(1, 2, 3), array(4, 5, 6), array(7, 8, 9));
echo count($array, COUNT_RECURSIVE);
// 出力: 12

このコードでは、二次元配列の全ての要素数をCOUNT_RECURSIVEを使って数えています。

  1. count関数は配列の要素を数えますが、要素の値がNULLである場合でもカウントします。
    NULL要素を除外したい場合は、array_filter関数を使用します。
$array = array(1, 2, NULL, 4, NULL);
echo count(array_filter($array));
// 出力: 3

このコードでは、array_filter関数を使用してNULL要素を除外した後に、その要素数を数えています。

以上のような点に注意しつつ、count関数を適切に使用することで、PHPプログラミングの効率と品質を向上させることができます。

●count関数のカスタマイズ方法

count関数はそのままでも非常に便利ですが、さらに自分のニーズに合わせてカスタマイズすることも可能です。

一つの方法として、特定の値を持つ要素の数だけを数えるカスタム関数を作成することが挙げられます。

function count_value($array, $value) {
    return count(array_keys($array, $value, true));
}

$array = array(1, 2, 3, 2, 1, 2, 3, 1, 2, 3);
echo count_value($array, 2);
// 出力: 3

このコードでは、count_valueというカスタム関数を作成しています。

この関数は、指定した値を持つ要素の数を数えます。

この例では、配列$array中の「2」の数を数えています。

まとめ

以上が、PHPのcount関数の使い方とその詳細な使用例です。

count関数の注意点と対処法、そしてカスタマイズ方法についても詳しく解説しました。

これらの情報を参考に、PHPでのデータ処理をよりスムーズに、効率的に行っていきましょう。

プログラミング学習には実際に手を動かして試すことが非常に重要です。

是非、この記事で学んだ知識を活用して、自分で色々なコードを書いてみてください。