php在句子之间找到相同的单词

时间:2014-04-03 14:13:13

标签: php arrays

如何在句子之间获得相同的单词?这里有一些来自pdo mysql查询的电源线。

if($q->rowCount()>0){
 foreach($q->fetchAll(PDO::FETCH_ASSOC) as $r){
   $t=$r['text'];
   $e=explode(' ',$t);
   //array_intersect();
 }
}
//from $r['text'] query get:
//Israel breaks through the Google Glass ceiling
//Google Glass wearers getting used to curious stares
//Airlines start to look through the Google Glass

从这3个句子中,相同的单词应该得到Google Glass,但是如何在我的pdo mysql查询案例中编写代码?感谢

2 个答案:

答案 0 :(得分:1)

$youText= explode(' ',$youText);
$youText= array_flip($youText);

检查你的情况

if (isset($youText[$word])){
      doSomething();
  }

另一种方式

$searchMyWord = $_GET['search'];
    $searchMyWord = preg_quote($searchMyWord);

    if (preg_match("/\b$searchMyWord\b", $input) {
      echo "$input has the word $searchMyWord";
    }

答案 1 :(得分:0)

你应该连接到变量的所有句子,然后将连接变量传递给explode函数,然后将爆炸数组传递给array_count_values($array)

Step 1:

将句子连接到单个变量,这样你就可以

$concat = "Israel breaks through the Google Glass ceiling
Google Glass wearers getting used to curious stares
Airlines start to look through the Google Glass";

在一个变量中。

Step 2:

将$ concat传递给$array = explode(" ",$concat);

step 3:

爆炸变量是你传递给array_count_values($ array)的数组;

print_r(array_count_values($array));

所以你会得到像

这样的输出
Array
(
   [Google ] => 3
   [Glass] => 2
   etc...
)

因此,计数超过1的密钥是重复的,您可以轻松打印这些密钥