如何:将数组元素与字符串进行比较


How to: compare array elements with a String

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

$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

那怎么办?

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

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

然后像这样比较

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

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

使用爆炸拆分字符串以工作,而不是为每个单词检查in_array

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

注意:比较将区分大小写

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

我找到了一些解决方案,它非常适合我。首先,我用","重新排列字符串,

使用

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

在此之后,只需使用 inArray(( 我就得到了想要的结果

希望对其他人有帮助