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


Count amount of similar items in array, return value if under 3

我有一个数组,它包含三个类似命名项的集合;然而,有时一套只有两个项目,我想把它们说出来。

<?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*项目。我从一个兔子洞开始,觉得有一些简单的事情我只是在掩饰。

您可以将此过程分为两个阶段。

第1阶段:

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

第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包含了这个列表,我可以循环使用它。