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」の一部として)、結果はtrueになります。
パフォーマンスが必要なので質問しています...これが不可能な場合は、代わりに独自の関数を作成します...
編集-私はstristr(string $ haystack、array $needle);のようなものを探しています。
ありがとう
解決策-私は彼の機能を思いついた。
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;
}
返される配列には、一致した各単語の開始位置と終了位置に関する情報が含まれています。