@Alexander_Mas

Проверить входит ли строка в массив?

именно не равно значение ячейке массива, а входит ли как часть значения.

$owned_urls= array('This is a first site website1.com', 'This is a 2 site website2.com', 'Third site website3.com');
$string = 'website3.com';

Надо проверить есть ли в массиве ячейка содержащая $string. Какой самый простой вариант?
  • Вопрос задан
  • 179 просмотров
Решения вопроса 1
AnatolTh
@AnatolTh
Full Stack Developer
Если необходимо узнать номер ячейки, в которой содержится искомая строка:
$i = -1;
foreach ($owned_urls as $k => $v) {
  $pos = strpos($v, $string);
  if ($pos > 0) $i = $k;
}

if ($i > 0) {
  //значение найдено в ячейке, номер которой содержится в $i
} else {
  //значение не найдено
}


Если нет необходимости:
$str = implode(",", $owned_urls);
$pos = strpos($str, $string);

if ($pos > 0) {
  //значение найдено
} else {
  //значение не найдено
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@zhora_pro
key(array_filter($owned_urls, function ($item) use ($string) {
    return mb_strpos($item, $string);
}));

Вернет номер первой ячейки, содержащей строку или NULL
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы