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

2022-08-30 09:23:42

与一个小问题作斗争。

我有一个数组:

Array
(
    [0] => 
    [6] => 6
    [3] => 5
    [2] => 7
)

我正在检查数组中是否有设置值。

if(in_array(5, $array)) {
//do something
} else {
// do something else
}

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

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

$key = 3;

(找到的值in_array中的键)。

有什么建议吗?


答案 1

array_search() 就是你要找的。

if (false !== $key = array_search(5, $array)) {
    // found!
} else {
    // not found!
}

答案 2

如果您只需要第一个匹配项的密钥,请使用:array_search()

$key = array_search(5, $array);
if ($key !== false) {
    // Found...
}

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

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