我正在尝试搜索字符串中某些单词的出现情况,并将它们与数组中的短列表进行匹配。我将通过一个例子来解释我的问题。
$arrTitle = explode(" ", "Suburban Apartments");
foreach( $arrTitle as $key => $value){
echo "Name: $key, Age: $value <br />";
$words = array("hotel", "apart", "hostel");
if (in_array($value, $words)) {
echo "Exists";
}
}我希望比较字符串的一部分,在上面的例子'Apartments‘和$words数组中比较字符串’‘的出现。我希望这是有意义的。这是可能的吗?
谢谢
发布于 2011-11-11 07:13:53
然后你必须稍微修改一下你的代码。请看下面的内容:
$arrTitle = explode(" ", "Suburban Apartments");
foreach( $arrTitle as $key => $value){
echo "Name: $key, Age: $value <br />";
$words = array("hotel", "apart", "hostel");
foreach($words as $word){
if (stripos($value, $word) !== false) {
echo "Exists";
}
}
}注意,在要搜索的单词上添加了foreach,并用in_array替换了strpos。
对于您的个人信息,in_array将检查$word是否在数组中作为一个整体值,这不是您想要的。您需要使用strpos或stripos (不区分大小写)检查每个单词的存在。
发布于 2011-11-11 07:13:24
使用正则表达式匹配文本。
http://php.net/manual/en/function.preg-match.php
您需要逐个遍历所查找的每个数组值,因此必须在循环内循环,并在每个数组上运行regexp以查找匹配项。
确保它们不区分大小写。
https://stackoverflow.com/questions/8087695
复制相似问题