У меня есть массив, который выглядит так:
$fruit = array('apple','orange','grape');
Как я могу найти индекс определенного элемента в указанном выше массиве? (Например, значение "оранжевый" )
У меня есть массив, который выглядит так:
$fruit = array('apple','orange','grape');
Как я могу найти индекс определенного элемента в указанном выше массиве? (Например, значение "оранжевый" )
Попробуйте array_search.
Из первого примера в руководстве:
<?php $array = array(0 => 'blue', 1 => 'red', 2 => 'green', 3 => 'red'); $key = array_search('green', $array); // $key = 2; $key = array_search('red', $array); // $key = 1; ?>
Слово предостережения
При сравнении результата обязательно проверяйте значение false
с помощью оператора ===
.
Поскольку массивы в PHP основаны на 0, если элемент, который вы ищете, является первым элементом в массиве, будет возвращено значение 0.
В то время как 0 - действительный результат, это также значение фальшивки, означающее следующее:
<?php
$array = array(0 => 'blue', 1 => 'red', 2 => 'green', 3 => 'red');
$key = array_search('blue',$array);
if($key == false) {
throw new Exception('Element not found');
}
?>
Это связано с тем, что оператор ==
проверяет равенство (путем манипуляции с типом), а оператор ===
проверяет идентификатор.
помните, что если вы считаете, что ваш элемент поиска можно найти более одного раза, вы должны использовать array_keys(), поскольку он будет возвращает ключи для всех совпадающих значений, а не только первый соответствующий ключ как array_search().
С уважением.
Вы должны использовать array_search.
Посмотрите здесь http://www.php.net/manual/en/function.array-search.php