Я некоторое время просматривал руководство по PHP и могу Я не нашел ни одной команды, которая делает то, что я хочу.
У меня есть массив с ключами и значениями, например:
$Fields = array("Color"=>"Bl","Taste"=>"Good","Height"=>"Tall");
Затем у меня есть строка, например:
$Headline = "My black coffee is cold";
Теперь я хочу узнать, совпадают ли какие-либо из значений массива ($ Fields) где-нибудь в строке ($ Headline).
Пример:
Array_function_xxx($Headline,$Fields);
Дало бы результат истинный, потому что «bl» находится в строке $ Headline (как часть «Black»).
Я спрашиваю, потому что мне нужна производительность. .. Если это невозможно, я просто создам свою собственную функцию ...
EDIT - Я ищу что-то вроде stristr (string $ haystack, array $ Need);
Спасибо
РЕШЕНИЕ - Я придумал его функцию.
function array_in_str($fString, $fArray) {
$rMatch = array();
foreach($fArray as $Value) {
$Pos = stripos($fString,$Value);
if($Pos !== false)
// Add whatever information you need
$rMatch[] = array( "Start"=>$Pos,
"End"=>$Pos+strlen($Value)-1,
"Value"=>$Value
);
}
return $rMatch;
}
Возвращаемый массив теперь содержит информацию о том, где начинается и заканчивается каждое совпадающее слово.