Php 计算数组中相似项的数量,如果小于3,则返回值

Php 计算数组中相似项的数量,如果小于3,则返回值,php,arrays,count,duplicates,Php,Arrays,Count,Duplicates,我有一个数组,其中包含三个相似命名项的集合;然而,有时一组中只有两个项目,我想把它们叫出 <?php $items = array( 'reviewpitfighter-1.138x88.jpg', 'reviewpitfighter-2.138x88.jpg', 'reviewpopfulmailsegacd-1.138x92.jpg', 'reviewpopfulmailsegacd-2.138x76.jpg', 'reviewpopfulmailsegacd-3.138x97.jpg

我有一个数组,其中包含三个相似命名项的集合;然而,有时一组中只有两个项目,我想把它们叫出

<?php
$items = array(
'reviewpitfighter-1.138x88.jpg',
'reviewpitfighter-2.138x88.jpg',
'reviewpopfulmailsegacd-1.138x92.jpg',
'reviewpopfulmailsegacd-2.138x76.jpg',
'reviewpopfulmailsegacd-3.138x97.jpg'
);
?>


您将注意到有两个reviewpitfigher*项和三个ReviewOpfulMailSegacd*项。我从一个兔子洞开始,觉得有一件简单的事情我只是在掩饰。

也许你可以通过两个阶段来完成

第一阶段:

循环遍历原始数组并形成另一组数组,其键作为该原始数组的值。然后将重复计数保存在每个新数组中

第2阶段:

循环遍历新的数组集,然后选择值小于3的数组并检索其键


希望这有帮助

这是我想出的解决方案,很抱歉花了这么长时间才发布

foreach($images as $value){
    $lastItem = explode('-', $images[$count - 1]);
    $parts = explode('-', $value);
    if(preg_match('/^1/', $parts[1]) && $count != 0){
        if(preg_match('/^2/',$lastItem[1])){
            $imgurl = preg_replace('/^p?review/','',$lastItem[0]);
            $sql = 'SELECT field FROM table WHERE field = "' . $imgurl . '"';
            $result = $dbConn->FetchArray($dbConn->Query($sql), MYSQL_ASSOC);
            $array[$imgurl] = $result;
        }
    }
    $count++;
}
我得到一个所有图像的数组,然后我检查我是否在看第一个图像,如果我在看,那么我看最后一个图像是否是第二个图像。在这一点上,我然后调用数据库来获取一些信息,以显示一个整洁的消息,将缺少第三个图像的评论输出。最后,
$array
包含我可以循环的列表