<?php
$json = '[{"_id":"4940dgfd95jfsd9","score":15,"user":0,"type":"xxx"},
    
  {"_id":"4940dsdsvhjttt89","score":4,"user":0,"type":"yyy"},
  {"_id":"4941dgfdsdfggd9","score":7,"user":0,"type":"yyy"},
  {"_id":"4941dfds43rfsff9","score":21,"user":1,"type":"yyy"},
  
  {"_id":"4941dgfd93jfsd0","score":15,"user":1,"type":"xxx"},
  
  {"_id":"4942dgdsadvfd9","score":8,"user":1,"type":"yyy"},
  {"_id":"4942dgfdaefcod8","score":4,"user":2,"type":"yyy"},
  {"_id":"4942dgfdsarfsd1","score":32,"user":2,"type":"yyy"},
  
  {"_id":"4943dgfddasjfsd5","score":20,"user":2,"type":"xxx"},
  {"_id":"4943dasrtqxrfsd9","score":15,"user":3,"type":"xxx"},
  
  {"_id":"4943dgfooorafsd8","score":15,"user":3,"type":"yyy"},
  {"_id":"4944dgfddadfsd3","score":15,"user":3,"type":"yyy"},
  
  {"_id":"4944dgfd9dssdc4","score":15,"user":4,"type":"xxx"},
  
  {"_id":"4944dgdacbbrttt9","score":19,"user":4,"type":"yyy"},
  
  {"_id":"4945dgfsaddddd5","score":15,"user":4,"type":"xxx"}]';

//var_dump(json_decode($json), true);


$jsonArray = json_decode($json, true);

function returnJson($jsonArray) {

    //var_dump($jsonArray[0]["score"]);
    $totalScore1 = [];
    $totalScore2 = [];
    $totalScore3 = [];
    $totalScore4 = [];
    $totalScore5 = [];

    foreach ($jsonArray as $value){
        
        
        if ($value["type"] == "yyy") { 
            $number = $value["user"];
            $score = $value['score'];

 
        switch($number){
            case 0:
            array_push($totalScore1, ["_id" => $value["_id"], "score" => $score, "user" => $number, "type" => $value["type"]]);
            
            break;
            case 1:
            array_push($totalScore2, ["_id" => $value["_id"], "score" => $score, "user" => $number, "type" => $value["type"]]);
            break;
            case 2:
            array_push($totalScore3, ["_id" => $value["_id"], "score" => $score, "user" => $number, "type" => $value["type"]]);
                
            break;
            case 3:
            array_push($totalScore4, ["_id" => $value["_id"], "score" => $score, "user" => $number, "type" => $value["type"]]);
            
            break;
            case 4: 
            array_push($totalScore5, ["_id" => $value["_id"], "score" => $score, "user" => $number, "type" => $value["type"]]);
            
            break;
            }
        }
    }
    $resultArray = array_merge(checkArray($totalScore1),
            checkArray($totalScore2),
            checkArray($totalScore3),
            checkArray($totalScore4),
            checkArray($totalScore5)
            );
    $resultJson = json_encode($resultArray);
    
    var_dump($resultJson);
    
}
function checkArray($totalScore){

    
    
        if(count($totalScore) > 1){
        //array_unique($totalScore);   

        foreach ($totalScore as $key => $value){
            $min = min($value);
            //var_dump($totalScore);
            
            if($value == $min){ 
               //var_dump($value);
               unset ($totalScore[$key]) ;

            }
        } 
        return $totalScore;
    }   
    return $totalScore;
}
returnJson($jsonArray);
