首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

PHP 數組函數詳解:in_array() 查找值是否存在

     編輯:PHP 綜合知識

函數原型

in_array(mixed $needle, array $haystack, bool $strict = false): bool

參數說明

  • $needle:要搜索的值。
  • $haystack:目標數組。
  • $strict:true 時同時比較類型與值(===),false(默認)僅比較值(==)。

返回值

找到返回 true,否則 false。

代碼示例

1. 非嚴格模式(類型轉換)

$people = ["Peter", "Joe", "Glenn", "Cleveland", 23];
var_dump(in_array("Glenn", $people));        // true
var_dump(in_array("23", $people));           // true (字符串 "23" == 整數 23)
var_dump(in_array(23, $people));             // true

2. 嚴格模式(類型必須一致)

var_dump(in_array("23", $people, true)); // false (string !== int)
var_dump(in_array(23, $people, true));   // true
var_dump(in_array("Glenn", $people, true)); // true

3. 字符串大小寫敏感

var_dump(in_array("glenn", $people, true)); // false

性能與替代方案

場景推薦做法時間複雜度
頻繁查找同一數組$flip = array_flip($arr); isset($flip[$val])O(1)
大數組、多次查找構建查找表或使用 SplObjectStorageO(1)
一次性查找、小數組in_array()O(n)

常見陷阱

  • in_array() 會觸發字符串轉數字比較:in_array("abc", [0]) 返回 true("abc" == 0)。務必在不確定類型時使用 strict=true。
  • 多維數組需自行遞歸或用 array_walk_recursive。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved