PHP имеет функцию strpos()
для нахождения позиции первого экземпляра заданного значения в строке. Есть ли способ сделать это с помощью иглы, которая представляет собой массив строк? Это дало бы первое появление:
$str = '1st and 3rd'; str_array_pos($str, array('st', 'nd', 'rd', 'th')) //would return 1 because of 'st'
Вы можете написать один:
function str_array_pos($string, $array) { for ($i = 0, $n = count($array); $i < $n; $i++) if (($pos = strpos($string, $array[$i])) !== false) return $pos; return false; }
Кстати, возвращаемое значение в вашем примере должно быть 0, а не 1, так как индексы массива начинаются с 0.
array_search () сделает это, проверьте с ===false
.