-2

有没有一个函数可以让我找到一个单词在字符串中的位置?位置我不是指它在字符串中的哪个数字字符。我知道已经有很多函数可以做到这一点,例如 strpos() 和 strstr() 等。我正在寻找的是一个函数,它将返回一个单词在字符串中相对于单词数的数字。

例如,如果我在文本“这是一个字符串”中搜索“字符串”,结果将是 4。

注意:我对将字符串拆分为数组不感兴趣。我需要一个允许我将字符串作为字符串而不是数组输入的函数。因此这里的答案 Find the exact word position in string不是我要找的。

4

2 回答 2

3

你可以这样做:

function find_word_pos($string, $word) {
    //case in-sensitive
    $string = strtolower($string); //make the string lowercase
    $word = strtolower($word);//make the search string lowercase
    $exp = explode(" ", $string);
    if (in_array($word, $exp)) { 
        return array_search($word, $exp) + 1;
    }
    return -1; //return -1 if not found
}
$str = "This is a string";
echo find_word_pos($str, "string");
于 2013-09-08T06:13:50.317 回答
2

你可以explode在数组中用空格串起来

    $arr_str = explode(" ","This is a string")

并使用array_search作为位置

    echo array_search("string",$arr_str)+1;

还要添加 +1,因为数组从 0 开始

希望这一定能解决你的问题

于 2013-09-08T06:12:30.213 回答