Борьба с крошечной проблемой.
У меня есть массив:
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; }
таким образом, вы знаете, что он существует, и если это не так, он не вызывает уведомлений, предупреждений или фатальных ошибок скриптов в зависимости от того, что вы делаете с этим ключом после этого.