计算数组中类似项的数量,如果低于3则返回值

时间:2012-02-29 23:39:19

标签: 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'
);
?>

你会注意到有两个reviewpitfigher *项目和三个reviewpopfulmailsegacd *项目。我已经开始了一个兔子洞的循环,并觉得有一些简单的我只是在掩饰。

2 个答案:

答案 0 :(得分:1)

可能你可以做两个阶段的过程。

第1阶段:

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

第二阶段:

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

希望这会有所帮助!!

答案 1 :(得分:0)

这是我提出的解决方案,抱歉发布这么长时间。

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包含我可以循环的列表。