LoginSignup
66
50

More than 5 years have passed since last update.

isset, in_array, array_key_exsistsの使い分け

Posted at

PHPで、配列中に特定のキーが存在するか真偽値を取りたい場合、isset、in_array、array_key_existsという関数があります。

in_arrayの速度は、O(n)なので、キーの数が増えるほど重くなります。

issetとarray_key_existsは、O(1)なのでin_arrayよりもはるかに高速でした。

また、issetとarray_key_existsでは、NULLに対しての処理が違うようです。

<?php
$array_data = array('1' => NULL, '2' => 'test');

// FALSE
isset($array_data['1']);

// TRUE
array_key_exists('1', $array_data);

指定したキーの値がNULLでも検知したい場合は、array_key_exists。

それ以外は、issetを使うと良いと思います。

in_array - PHP Manual
isset - PHP Manual
array_key_exists - PHP Manual

66
50
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
66
50