php is_arrayで配列であるかを判定する

  • 作成日 2021.11.07
  • php
php is_arrayで配列であるかを判定する

phpで、is_arrayを使用して、配列であるかを判定するサンプルコードを記述してます。phpのバージョンは8.0です。

環境

  • OS  CentOS Linux release 8.0.1905 (Core)
  • php 8.0.0
  • nginx 1.14.1

is_array使い方

is_arrayを使用すれば、配列であるかを判定することが可能です。

is_array(変数);
// 配列であれば true, なければ falseを返します。

以下は、変数が配列であるかを判定するサンプルコードとなります。

<?php

$arr = [];

$result = is_array($arr);

var_dump($result); // bool(true)


$arr = [1, 2, 3];

$result = is_array($arr);

var_dump($result); // bool(true)


$arr = ["aaa" => 1, "bbb" => 2, "ccc" => 3];

$result = is_array($arr);

var_dump($result); // bool(true)


$arr = [[1, 2, 3], [4, 5, 6]];

$result = is_array($arr);

var_dump($result); // bool(true)


$num = 1;

$result = is_array($num);

var_dump($result); // bool(false)


$obj = new stdClass;

$result = is_array($obj);

var_dump($result); // bool(false)

以下のコードでも判定可能です。

<?php

$var = [];

var_dump((array)$var === $var); // bool(true)

$var = ["aaa" => 1, "bbb" => 2, "ccc" => 3];

var_dump((array)$var === $var); // bool(true)

$var = 1;

var_dump((array)$var === $var); // bool(false)

パフォーマンスは、is_arrayの方が良さそうです。

【参考】 同じコードを1000万回実行した結果

【trueを返す場合】

測定結果 : (array)
process time: 0.68906 ミリ秒

測定結果 : is_array
process time: 0.59211 ミリ秒

【falseを返す場合】

測定結果 : (array)
process time: 0.85024 ミリ秒

測定結果 : is_array
process time: 0.53473 ミリ秒