在php中的句子中找到一个单词

时间:2017-01-19 14:44:53

标签: php arrays

我有这句话:

$newalt="My name is Marie";

如果找到marie或josh,我想要包含一个页面:

$words = array("marie", "josh");

$url_string = explode(" ", $newalt);

if(!in_array($url_string, $words)){
    echo "marie or josh are not in array";
}

问题是,当我运行这个php时,它显示“marie或josh不在数组中”而marie是数组(或应该是)。 有什么问题?

4 个答案:

答案 0 :(得分:1)

使用Top.jsp <%@include file="/pages/includes/taglibs.jsp"%> <s:text name='label.LastViews' />array_intersect函数的解决方案:

array_map

http://php.net/manual/en/function.array-intersect.php

答案 1 :(得分:1)

您错误地使用了in_array(),在数组中检查第一个参数是否在第二个参数中。

When(/^I create scenarios$/) do
   if condition == true
   else
     #code i don't want to execute if condition matches
   end
end

答案 2 :(得分:1)

您有2个错误。首先,in_array()区分大小写。您需要先将干草堆全部小写。其次,in_array()不接受数组作为针。要解决此问题,您可以使用array_diff()

之类的内容
$newalt="My name is Marie";
$words = array("marie", "josh");

$url_string = explode(" ", strtolower($newalt));

if(count(array_diff($words, $url_string) == count($words)){
    echo "marie or josh are not in array";
}

答案 3 :(得分:1)

in_array函数的第一个参数是一个数组。你的$ words数组填充了字符串而不是数组。

也许尝试这样的事情:

$words = array("marie", "josh");

$urlStrings = explode(" ", $newalt);

foreach ($urlStrings as $urlString) {
    if(!in_array($urlString, $words)){
        echo "marie or josh are not in array";
    }
}