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

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

     編輯:PHP 綜合知識

語法

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

參數說明

參數說明
$needle要搜索的值。字符串區分大小寫。
$haystack目標數組。
$strict若為 true,同時檢查類型(如 "1" !== 1)。默認 false。

返回值

找到返回 true,否則 false。

基本示例

$os = ['Mac', 'NT', 'Irix', 'Linux'];

var_dump(in_array('Irix', $os));      // true
var_dump(in_array('mac', $os));       // false(區分大小寫)
var_dump(in_array('mac', $os, true)); // false

嚴格模式對比

$data = [1, '2', 3, '4'];

var_dump(in_array('2', $data));       // true(鬆散比較)
var_dump(in_array('2', $data, true)); // false(嚴格:字符串 !== 整數)
var_dump(in_array(2, $data, true));   // true

多維數組搜索

in_array() 不支持多維數組直接搜索,需自行遍歷或使用 array_column() 配合:

$users = [
    ['id' => 1, 'name' => 'Alice'],
    ['id' => 2, 'name' => 'Bob'],
];

// 搜索名字
$names = array_column($users, 'name');
var_dump(in_array('Alice', $names)); // true

性能提示

  • 大數組(>1000 元素)頻繁查找時,建議先 array_flip() 轉為鍵值對,用 isset($flipped[$val]) 實現 O(1) 查找。
  • 嚴格模式略慢於鬆散模式,但能避免類型轉換導致的誤判。

常見錯誤

// 錯誤:參數順序顛倒
in_array($arr, $val); // Warning: in_array() expects parameter 2 to be array

// 錯誤:第一個參數為數組時不會遞歸搜索
in_array(['a'], [['a'], 'b']); // false
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved