phparraysgrouping

Group values of an associative array and accumulate keys as comma-separated values


I have this array:

Array ( 
    [061716v] => 1 
    [061610A] => 1 
    [062433AP] => 1 
    [063868M] => 2 
    [059173V] => 3 
    [061579A] => 3 
    [062404AP] => 3 
    [059179V] => 4 
    [061582A] => 4 
    [061697V] => 4 
    [062407AP] => 4 
)

How can i get this:

Array ( 
    [1] => 061716v,061610A,062433AP 
    [2] => 063868M 
    [3] => 059173V,061579A,062404AP 
    [4] => 059179V,061582A,061697V,062407AP 
)

Solution

  • In PHP single foreach() will do the job:-

    $final_array = [];
    
    foreach($initial_array as $key=>$val){
    
        $final_array[$val] = isset($final_array[$val]) ? $final_array[$val].','.$key : $key;
    
    }
    
    print_r($final_array);
    

    Output:-https://3v4l.org/lSKE2