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

PHP 數組函數詳解:array_search() 根據值返回鍵名

     編輯:PHP 綜合知識

函數原型

array_search(mixed $needle, array $haystack, bool $strict = false): int|string|false

行為詳解

  • 在 $haystack 中搜索 $needle,找到返回對應的鍵名(整數或字符串)。
  • 未找到返回 false(PHP 4.2.0 前返回 null)。
  • $strict=true 時使用 === 比較(類型+值),默認 ==(類型轉換)。
  • 若有多個匹配值,僅返回第一個(按內部指針順序)。

代碼示例

$a = ["a"=>"Dog", "b"=>"Cat", "c"=>"Horse"];
echo array_search("Dog", $a); // a

$b = [10, 20, 30, "10"];
var_dump(array_search("10", $b));       // int(0)  非嚴格:字符串 "10" == 整數 10
var_dump(array_search("10", $b, true)); // int(3)  嚴格:類型必須一致

常見陷阱與最佳實踐

1. 必須用 !== false 判斷

$key = array_search($val, $arr);
if ($key !== false) { // 不能用 if ($key) ,因為鍵名可能是 0
    // 找到
}

2. 獲取所有匹配鍵名

$keys = array_keys($arr, $val, $strict); // 返回所有匹配的鍵名數組

3. 多維數組搜索

需自行遞歸或使用 array_column + array_search:

$users = [
    ['id'=>1, 'name'=>'Alice'],
    ['id'=>2, 'name'=>'Bob'],
];
$names = array_column($users, 'name');
$key = array_search('Bob', $names); // 1
$user = $users[$key] ?? null;
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved