バックエンド

【PHP入門】count関数で配列の要素の数を取得する方法

PHPで配列の要素数を取得する際に便利な count() 関数について解説します。この記事では、count() の基本的な使い方や、注意点をわかりやすく説明します。

1. count関数とは?

count() 関数は、配列の要素数を取得するためのPHPの組み込み関数です。シンプルな構文で使いやすく、多くの場面で利用されます。

構文:

count(配列, モード)
  • 配列: 要素数を取得したい配列
  • モード(省略可): COUNT_RECURSIVE を指定すると、多次元配列の要素を再帰的にカウントできる

2. count関数の基本的な使い方

まずは、基本的な配列の要素数を取得する例を見てみましょう。

2.1 一般的な配列の要素数を取得する

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

この場合、配列には5つの要素があるため、count($array)5 を返します。

. count関数の応用

3.1 空の配列の要素数を取得する

$emptyArray = [];
echo count($emptyArray); // 出力: 0

空の配列の場合、count()0 を返します。

3.2 多次元配列の要素数を取得する(通常の count())

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

この場合、最上位の配列に3つの配列が含まれているため、結果は 3 になります。

3.3 多次元配列の全要素数を取得する(COUNT_RECURSIVE)

echo count($multiArray, COUNT_RECURSIVE); // 出力: 12

COUNT_RECURSIVE を指定すると、配列内のすべての要素がカウントされ、9(要素) + 3(配列) = 12 になります。

4. count関数の注意点

4.1 NULL や false に対する count() の動作

count()NULLfalse に対して 0 を返します。

$nullVar = null;
echo count($nullVar); // 出力: 0

$falseVar = false;
echo count($falseVar); // 出力: 0

これにより、意図しない結果を引き起こす可能性があるため注意が必要です。

4.2 オブジェクトに count() を使う場合の注意

PHP 7.2 以降では、count()Countable インターフェースを実装していないオブジェクトを渡すとエラーになります。

class Sample {}
$obj = new Sample();
echo count($obj); // PHP 7.2以降では警告が発生

オブジェクトのプロパティ数をカウントしたい場合は、get_object_vars() を使うのが安全です。

$objWithProps = new class {
public $a = 1;
public $b = 2;
};
echo count(get_object_vars($objWithProps)); // 出力: 2

5. まとめ

count() 関数は、PHPで配列の要素数を取得する基本的な関数ですが、多次元配列の扱いや NULL・オブジェクトのケースには注意が必要です。

ポイントまとめ:

  • count() は配列の要素数を返す
  • COUNT_RECURSIVE を使うと多次元配列のすべての要素をカウント可能
  • NULLfalse に対して 0 を返す
  • PHP 7.2 以降では、count()Countable でないオブジェクトを渡すと警告が出る

PHPの基本を押さえて、より安全なコーディングを心がけましょう!

-バックエンド
-