Get the keys for duplicate values in an array

前端 未结 9 1536
温柔的废话
温柔的废话 2020-11-28 11:11

I have the following array:

$myarray = Array(\"2011-06-21\", \"2011-06-22\", \"2011-06-22\", \"2011-06-23\", \"2011-06-23\", \"2011-06-24\", \"2011-06-24\",         


        
9条回答
  •  离开以前
    2020-11-28 11:33

    function getDuplicateValueKeys($my_arr, $clean = false) 
    {
        if ($clean) {
            return array_unique($my_arr);
        }
        $dups = array();
        $new_arr = array();
        $dup_vals = array();
    
        foreach ($my_arr as $key => $value) {
            if (!isset($new_arr[$value])) {
                $new_arr[$value] = $key;
            } else {
                array_push($dup_vals,$value);
            }
        }
    
        foreach ($my_arr as $key => $value) {
            if (in_array($value, $dup_vals)) {
                if (!isset($dups[$value])) {
                    $dups[$value]=array($key);
                }else{
                    array_push($dups[$value],$key);
                }
            }
        }
    
        return $dups;
    }
    

提交回复
热议问题