限制来自唯一数组的结果



我有一个数据库选择查询,它从多行中的一列返回一个逗号分隔的结果列表,代码过滤重复的字符串,效果很好。

然而,我想限制从array_unique返回的字符串数量-由于我不能使用典型的++计数器并中断此筛选器,因此我不知道如何仅返回5个字符串,例如,返回整个过滤数组(大约返回300个唯一字符串(。

我写的:

foreach ($tags as $row) {
$filter = array_unique($row);
foreach (explode(',', trim($sep['tags'])) as $tag) {
printf('<span>%s</span>', strip_tags($tag));
}
}

我试过

$filter = array_unique($row);
$sep = array_slice($filter, 0, 5);
foreach (explode(',', trim($sep['tags'])) as $tag)
...

它只是再次返回300行。我怎样才能做到这一点?

谢谢!

  1. 如果标签在数据库或json中存储为不同的行会更好。

  2. 使用你的数据,当你得到足够的计数时,你可以打破界限。

$tags = 'a,b,c,d,e,f,g,h,c,e,x';
foreach (array_unique(explode(',', trim($tags))) as $index => $tag) {
echo strip_tags($tag);
if($index+1 == 5){
break;
}
}

最新更新