Ciao a tutti,
ecco il mio quesito, un po' complesso, sembra un test scolastico, ma in realtà non lo è...

I dati di partenza sono essenzialmente 2:

1. Un array come il seguente, che contiene le righe provenienti da una query sul DB e chiameremo $array_mono_dimensionale
Codice PHP:
id_m id_g valori
-----+------+--------
  
1  |   a  |  777
  2  
|   b  |  888
  1  
|   c  |  999
  1  
|   d  |  333
  2  
|   c  |  222 
Questo array è caratterizzato da N "campi chiave" (sopra sono i primi due campi: "id_m" e "id_g") e 1 "campo dei valori" (nell'esempio si chiama "valori").

2. L'array dei campi chiave, che contiene i nomi dei "campi chiave", che chiameremo $array_chiavi:
$array_chiavi = array("id_m","id_g");

Il mio scopo è di farlo diventare un array multidimensionale, che risulti così (e chiameremo $array_multidimensionale:

Codice PHP:
$array_multi_dimensionale = array(
   [
1] = array(
           [
a] = 777,
           [
c] = 777,
           [
d] = 333
          
),
   [
2] = array(
           [
b] = 888,
           [
c] = 222
          
)
); 
In questo caso (2 "campi chiave") l'array ha 2 sole dimensioni.
Nel caso i "campi chiave" fossero 3, ci sarebbero 3 dimensioni, nel caso di 4 campi chiave 4 dimensioni, ecc. ecc..

Dovrei creare (se già non esiste...) una funzione che crei l'array multidimensionale, partendo dall'array monodimensionale e dall'array dei campi chiave, qualcuno di voi è in grado di aiutarmi??