Поиск по строке для любого из элементов в массиве - PullRequest
1 голос
/ 01 октября 2010

Вот мой массив поиска:

$aExt = array('png','jpg','gif');

Я хочу найти переменную:

$sIcon

Как я могу искать, если переменная включает что-либо в этот массив, используя PHP?

Это как в инвертированном in_array:

strstr($sIcon, $aExt) <- Может ли второй аргумент быть массивом? </p>

1 Ответ

2 голосов
/ 01 октября 2010

Вы можете использовать foreach для перебора элементов в массиве, а затем использовать strpos, чтобы увидеть, находится ли ключ в содержимом переменной:

foreach($aExt as $key) {
  if(strpos($sIcon, $key) !== false) {
    echo sprintf("%s is in the variable", $key);
  }
}

Я думаю, что имена ваших переменныхВы пытаетесь выяснить расширение имени файла.Вы можете легко узнать расширение файла, используя следующее:

$ext = pathinfo($filename, PATHINFO_EXTENSION);

В вашем случае:

$ext = pathinfo($sIcon, PATHINFO_EXTENSION);
if(in_array($ext, $aExt)) {
  echo "Valid icon!";
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...