PHP判斷數組key是否存在?
引言
接著我們的 PHP 數組操作系列文章繼續寫。今天說一說如何判斷數組的key是否存在?
一般大家可能立馬想到了那個函數——isset。但是這個是檢測變量是否設置的,如果用來檢查數組,可能又會一些副作用。
學習時間其實判斷數組的鍵是否存在,有一個一直以來的函數 array_key_exists ,檢查給定的鍵名或索引是否存在于數組中。
比如有下面這個例子:
$key = 'jim'; // example 1 if (isset($array[$key])) { // ... } // example 2 if (array_key_exists($key, $array)) { // ... }
example 1 與 2 有什么區別嗎?到底哪一個性能更好一些?
簡單地說,isset 判斷鍵是否存在,同時也判斷鍵存在時值是否為空。性能當然是快的。而 array_key_exists 專門用于判斷數組鍵是否存在,縱使傳入的值是 NULL,也可以正確執行。功能更為專一。
我們舉一個例子:
$a = array('key1' => 'フーバー', 'key2' => null); isset($a['key1']); // true array_key_exists('key1', $a); // true isset($a['key2']); // false array_key_exists('key2', $a); // true
對于鍵 key2,是存在的,而值是null,所以isset 返回了 false,而 array_key_exists 返回了true,后者才是我們想要的結果。
寫在最后看到上面的代碼之后,趕緊自查一下你再程序里,還有哪些地方用了 isset 用于判斷鍵是否存在的。如果不想程序跑偏,還是建議更改過來哦。
Happy coding :_)
我是 @程序員小助手 ,持續分享編程知識,歡迎關注。