PHP如果in_array()如何获取密钥呢?

Tom*_*Tom 56 php arrays

挣扎着一个小小的问题.

我有一个数组:

Array
(
    [0] => 
    [6] => 6
    [3] => 5
    [2] => 7
)
Run Code Online (Sandbox Code Playgroud)

我正在检查数组中是否有设定值.

if(in_array(5, $array)) {
//do something
} else {
// do something else
}
Run Code Online (Sandbox Code Playgroud)

问题是,当它在数组中找到值5时,我真的需要在我的"做某事"中使用密钥.

在这种情况下,我需要设置:

$key = 3;
Run Code Online (Sandbox Code Playgroud)

(来自找到的值in_array的键).

有什么建议?

Dav*_*dom 111

array_search() 是你在找什么.

if (false !== $key = array_search(5, $array)) {
    //do something
} else {
    // do something else
}
Run Code Online (Sandbox Code Playgroud)


Nik*_*iko 16

如果您只需要第一场比赛的关键,请使用array_search():

$key = array_search(5, $array);
if ($key !== false) {
    // Found...
}
Run Code Online (Sandbox Code Playgroud)

如果您需要与特定值匹配的所有条目的键,请使用array_keys():

$keys = array_keys($array, 5);
if (count($keys) > 0) {
    // At least one match...
}
Run Code Online (Sandbox Code Playgroud)