Как проверить, содержит ли строка элемент массива и возвращает индекс (целое число) соответствующего члена?Какой член массива содержит строку в PHP?
Скажем, моя строка это:
$string1 = "stackoverflow.com";
$string2 = "superuser.com";
$r = array("queue" , "stack" , "heap");
get_index($string1 , $r); // returns 1
get_index($string2 , $r); // returns -1 since string2 does not contain any element of array
Как я могу написать эту функцию в элегантной (короткий) и эффективный способ?
Я нашел функцию (выражение?), Которая проверяет, если строка содержит элемент массива:
(0 < count(array_intersect(array_map('strtolower', explode(' ', $string)), $array)))
но это логическое значение. функция count()
возвращает то, что я хочу в этом выражении?
Спасибо за помощь!
Просто FYI, ваша одна линия не лучший код. Взрыв, преобразование и пересечение - это «тяжелые» действия над большой строкой/массивом, которые можно сделать проще :) – Martijn