首页 > 解决方案 > 多个数组值(某些值相同)如何仅获得 2 个相同的值

问题描述

单个数组中的多个值(一些值相似)如何获取其中一个是获取相似值最小1和最大2次重复的数组

例如这个数组 -

$array_value = array('ab','ab','cd','de','ab','cd','ab','de','xy');
foreach($array_value as $value){


}

我想要输出 - ab、ab、cd、cd、de、xy

标签: php

解决方案


我认为你的输出应该有两个不是一个?

无论如何,这里是注释中带有解释的代码:

<?php

$array_value = array('ab','ab','cd','de','ab','cd','ab','de','xy');

$arr_count = []; //we use this array to keep track of how many times we've added this
$new_arr = []; //we add elements to this array, or not.

foreach($array_value as $value){
    // we've added it before
    if (isset($arr_count[$value])) {
        // we only add it again one more time, no more.
        if ($arr_count[$value] < 2) {
            $arr_count[$value]++;
            $new_arr[] = $value;
        }
    }
    // we haven't added this before
    else {
        $arr_count[$value] = 1;
        $new_arr[] = $value;
    }
}

sort($new_arr); 

print_r($new_arr); 
/*
(
    [0] => ab
    [1] => ab
    [2] => cd
    [3] => cd
    [4] => de
    [5] => de
    [6] => xy
) */

PHP 演示


推荐阅读