使用OR运算符匹配php中的字符串

时间:2014-04-09 11:02:58

标签: php

我的结果已经过去了。我保持条件在一个数组上提供名词和形容词,如下所示:

function printTag($tags) {
        $var  = array();
        foreach($tags as $t) {
                echo $t['token'] . "/" . $t['tag'] .  " ";
                if($t['tag'] == 'NN'|| $t['tag']== 'JJ'){
                        array_push($var, $t['token'])   ;
                }
        }
        return $var;
}

但它没有给出正确的结果:

我的回音是:

The/DT quick/JJ brown/JJ fox/NN
 jumped/VBD over/IN the/DT lazy/JJ
 dog./NN this/DT is/VBZ really/RB yummy/JJ and/CC excellent/JJ
 pizza/NN
 I/NN have/VBP seen/VBN have/VBP really/RB in/IN love/NN it/PRP
 it/PRP

当我执行var_dump($ var)时,它给出:

 array(6) {
  [0]=>
  string(5) "quick"
  [1]=>
  string(5) "brown"
  [2]=>
  string(4) "dog."
  [3]=>
  string(5) "yummy"
  [4]=>
  string(1) "I"
  [5]=>
  string(4) "love"
}

为什么有些名词和形容词会跳过?

1 个答案:

答案 0 :(得分:1)

原因是您要比较的字符串中可能包含endline或空格字符。

可以使用以下方法解决此问题:

trim($t['tag']) == 'NN'

比较字符串时,这通常是一个好主意。