php 匹配字符串数组_PHP匹配字符串到多个关键字数组

我正在写一个基本的分类工具,将采取一个标题,然后将其与一个关键字数组进行比较。例如:PHP匹配字符串到多个关键字数组

$cat['dining'] = array('food','restaurant','brunch','meal','cand(y|ies)');

$cat['services'] = array('service','cleaners','framing','printing');

$string = 'Dinner at seafood restaurant';

是否有创造性的方法来循环这些类别或查看哪些类别具有最匹配的?请注意,在“餐饮”数组中,我使用正则表达式来匹配单词candy的变体。我尝试以下,但这些类别名单越来越长的很漂亮,我想知道如果这是最好的方法:

$keywordRegex = implode("|",$cat['dining']);

preg_match_all("/(\b{$keywordRegex}\b)/i",$string,$matches]);

谢谢你,史蒂夫

编辑: 感谢@jmathai,我是能够添加排名:

$matches = array();

foreach($keywords as $k => $v) {

str_replace($v, '#####', $masterString,$count);

if($count > 0){

$matches[$k] = $count;

}

}

arsort($matches);

+0

不知道PHP太好,但我怀疑哈希会比正则表达式更快。如果你有一个值作为一个实际的正则表达式(如cand(y | ies))作为正则表达式运行它,例如把正则表达式值放入一个单独的散列表中。 –

2011-02-05 02:04:46

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值