在字符串中查找单词的位置?

时间:2013-09-08 06:01:30

标签: php

是否有一个函数可以让我在字符串中找到单词的位置?按位置我不是指字符串中的数字字符。我知道有很多函数可以执行此操作,例如strpos()和strstr()等。我正在寻找的是一个函数,它将返回一个单词在字符串中的数字相对于单词的数量。

例如,如果我在文本“This is a string”中搜索“string”,结果将是4。

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

2 个答案:

答案 0 :(得分:2)

你可以这样做:

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");

答案 1 :(得分:1)

你可以explode在数组中使用

这样的空格
    $arr_str = explode(" ","This is a string")

并使用array_search作为职位

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

同时添加+1,因为数组从0开始

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