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

挣扎着一个小问题。

我有一个数组:

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

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

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

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

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

 $key = 3; 

(从find的值in_array键)。

有什么build议么?

array_search()是你在找什么。

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

如果你只需要第一个匹配的键,使用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... } 

你可以使用这个http://www.php.net/manual/en/function.array-search.php

 $key = array_search(5, $array) if ($key !== false) { ... 

也许你想要使用array_search,如果没有find该值,则返回false,如果find该值,则返回索引。 看看这里的描述

你可以试试

 if(in_array(5, $array)) { $key = array_search(5, $array); echo $key; } 

这样你就知道它存在了,如果它不存在,它不会导致通知,警告或致命的脚本错误,这取决于你在那之后用那个键做什么。