Мне нужно создать цикл, который проверяет, содержит ли массив ($ array) строку ('thisisaverylongstring'), которая содержит другую строку ('isavery').PHP: Как узнать, имеет ли массив строку со строкой?
Как я могу написать это в действительном PHP?
Мне нужно создать цикл, который проверяет, содержит ли массив ($ array) строку ('thisisaverylongstring'), которая содержит другую строку ('isavery').PHP: Как узнать, имеет ли массив строку со строкой?
Как я могу написать это в действительном PHP?
$stringToLookFor = 'isavery';
$inArray = FALSE; //does the string exist in the array?
foreach($array as $string)
{
if(strpos($string, $strongToLookFor) !== FALSE)
{
$inArray = TRUE;
}
}
if($inArray)
{
echo 'String "' . $stringToLookFor . '" found in array';
}
Я думаю, что это сработало. –
Если это просто, как вы говорите, вы можете использовать stripos (без учета регистра поиска строки):
foreach ($array as $element) {
if (stripos($element, 'isavery') !== false) {
echo 'Found it!';
break;
}
}
Я не знаю, что ваше фактическое требование, но, как от моего понимание следующая функция может работать
function checkInArray($array, $val)
{
if(in_array($val,$array))
return true;
}
function checkvalinarray($array2D, $val1, $val2)
{
foreach($array2D as $array1D)
{
if(checkInArray($array1D,$val2))
return true;
}
}
$arrayData = array('This is a very long string',
'This is a short string',
);
$needle = 'very';
$matches = array_filter($arrayData,
function($data) use ($needle) {
return (stripos($data,$needle) !== FALSE);
}
);
if (count($matches) > 0) {
echo 'Match found';
}
var_dump($matches);
ли вы пробовали 'in_array()' и 'array_search()' функции? – safarov
С чем именно вы столкнулись? [Цитирование по массиву] (http://php.net/manual/en/control-structures.foreach.php)? [Поиск подстроки в строке] (http://php.net/manual/en/function.strpos.php)? –
Является ли это массивом массивов или просто массивом строк? –