Необходимо узнать, присутствует ли элемент в массиве, и если да, то в какой позиции он находится.
Используйте функцию array_search(). Она возвращает ключ обнаруженного элемента или значение false:
$position = array_search($array, $value);
if ($position !== false) {
//элемент массива $array в позиции $position имеет значение $value
}
Используйте функцию in_array() для установления наличия в массиве определенного значения; используйте функцию array_search() для определения местоположения этого значения. Однако поскольку функция array_search() довольно изящно обрабатывает ситуации, когда значение не найдено, то вместо функции in_array() лучше использовать функцию array_search(). Разница в скорости работы незначительная, а дополнительная информация может оказаться полезной:
$favorite_foods = array(1 => 'artichokes', 'bread', 'cauliflower',
'deviled eggs');
$food = 'cauliflower';
$position = array_search($food, $favorite_foods);
if ($position !== false) {
echo "My #$position favorite food is $food";
} else {
echo "Blech! I hate $food!";
}
Используйте оператор !== для сравнения со значением false, поскольку если обнаруженная строка находится на нулевой позиции, то оператор if преобразует его в логическое значение false, что явно не то,что ожидалось.
Если значение встречается в массиве несколько раз, то единственное,
что гарантирует функция array_search(), – это возвращение одного
значения, но не обязательно первого по порядку.
См. также
О том, как проверять наличие элемента в массиве; документацию по функции array_search() на странице http://www.php.net/array-search для более сложного поиска в массиве с помощью регулярных выражений смотрите информацию по функции preg_replace() на странице http://www.php.net/preg-replace