我已经预定义了一个数组:
$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
那该怎么办?
答案 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()我得到了理想的结果
希望它对别人有帮助