PHP, если in_array () как получить ключ?

Борьба с крошечной проблемой.

У меня есть массив:

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

Я проверяю, установлено ли заданное значение в массиве.

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

Дело в том, что когда он находит значение 5 в массиве, мне действительно нужен ключ для работы в моем «делать что-то».

В этом случае мне нужно установить:

 $key = 3; 

(ключ от найденного значения in_array).

Какие-либо предложения?

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 вместо этого, который возвращает false, если значение не найдено и индекс, если значение найдено. Ознакомьтесь с описанием здесь.

Можешь попробовать

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

таким образом, вы знаете, что он существует, и если это не так, он не вызывает уведомлений, предупреждений или фатальных ошибок скриптов в зависимости от того, что вы делаете с этим ключом после этого.