如何:将数组元素与String进行比较

时间:2012-05-18 11:21:14

标签: php jquery

我已经预定义了一个数组:

$tags = array('PHP', 'Webdesign', 'Wordpress', 'Drupal', 'SQL');

现在我在文本区输入一个值:

$text = 'Working With Wordpress Shortcodes and doing some NoSQL and SQL';

如何将字符串值与预定义数组进行比较?

基于上述内容,我想要的结果是'Wordpress'和'SQL'

我可以在PHP和JQuery中完成吗?

此外,如果它包含正则表达式,如

Working With Wordpress; Shortcodes: and doing some NoSQL and ""SQL

那该怎么办?

4 个答案:

答案 0 :(得分:2)

你应该像这样分割你的字符串

$array = explode( ' ', $text );

然后比较那样

$result_array = array_intersect($tags, $array);

现在result_array将包含两个数组中的每个值:)

答案 1 :(得分:0)

使用explode将字符串拆分为有效,而不是每个字检查in_array

$words = explode(' ', $text);
$result = array();
foreach ($words as $word) {
   if (in_array($word, $tags)) {
      $result[] = $word;
   }
}

注意:比较将是区分大小的

答案 2 :(得分:0)

foreach(explode(' ', $text) as $word) {
  if(in_array($word, $tags)) {
    // This word is in our tags array, do something.
  }
}

答案 3 :(得分:0)

我找到了一些解决方案,它对我来说非常适合。 首先,我使用

重新排列了带有“,”的字符串

var valsp = $('#desc')。val(); var results = valsp.split(/ \ W + /);

之后只使用inArray()我得到了理想的结果

希望它对别人有帮助