我的网站上有很多不同标签的文章。目前我只对这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);
我认为它不是非常有效,而且它只返回匹配的标签,它不会返回具有最高权重的标签。怎么做?
答案 0 :(得分:0)
$tag = array_shift(array_intersect($weights, $tags));
答案 1 :(得分:0)
我会使用array_intersect然后查看匹配数组中的第一个值。像这样:
function determine_tag($tags) {
$weights = array(
'Dog',
'Camel',
'Bear',
'Cat'
);
$matches = array_intersect($weights, $tags);
if (count($matches) > 0) {
$top_match = $matches[0];
}
}