PHP中的高级字符串搜索

时间:2014-07-20 19:13:49

标签: php

假设我有一系列颜色:

$colors = array('black','yellow','red');
$color = 'reddish';

如何计算它们的出现次数?因为substr_count()可能很好地检测到'红色',但不会包含“红色”。所以我需要精确匹配字符串,尽管它之前或之后都是如此。

$string = implode(' ', $colors);
echo substr_count($string, $color);

1 个答案:

答案 0 :(得分:1)

这样的事情怎么样?

$colors = array('black', 'yellow', 'red');
$color = 'reddish';

$string = implode('|', $colors);

preg_match_all("/".$string."/i", $color, $matches);

print_r($matches); // will print an array of the matches
echo count($matches[0]); // will echo how many matches were made

这将输出1,如果$ color等于“reddish yellowy”,则输出将为2,因为它匹配$ colors数组中的“red”和“yellow”。