我在我的网站上有许多不同标签的文章。目前我只对这4个标签感兴趣:如何检查一个阵列与另一个阵列并返回单个最高匹配?
Dog
Camel
Bear
Cat
如果一篇文章有任何这些标签,我想显示它。如果一篇文章有两个或更多这些标签,我希望返回顶部的标签更多。例如,如果一篇文章同时包含Bear和Cat标签,则应返回Bear。
我迄今为止代码:
function determine_tag($tags) {
$weights = array(
'Dog',
'Camel',
'Bear',
'Cat'
);
$matches = array();
foreach($tags as $tag) {
if(in_array($tag, $weights)) {
$matches[] = $tag;
}
}
var_dump($matches); // returns array (Cat, Dog)
}
$tags = array('Cat', 'Floating', 'Dog', 'lol', 'Article');
echo determine_tag($tags);
我不认为这是非常有效的,再加上它只是返回匹配的标签,它不会只返回一个权重最高。怎么做?
当应用于我的例子时,它返回“猫”,它应该返回“狗”。我认为它假设指数越高,权重越高,但应该被视为相反。 – TK123 2012-08-06 22:19:36
我看到,反转$标签和$权重。答案已更新。 – Rob 2012-08-06 22:20:53