1

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

$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

4 回答 4

2

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

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

然后像这样比较

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

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

于 2012-05-18T11:26:30.033 回答
0

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

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

注意:比较将区分大小写

于 2012-05-18T11:23:51.023 回答
0
foreach(explode(' ', $text) as $word) {
  if(in_array($word, $tags)) {
    // This word is in our tags array, do something.
  }
}
于 2012-05-18T11:24:00.283 回答
0

我找到了一些解决方案,它对我来说非常有效。首先,我用“,”重新排列字符串,使用分隔

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

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

希望对其他人有所帮助

于 2012-05-19T07:43:49.837 回答