Wie man Array Keys in PHP dynamisch setzt

Ich habe eine Logik, die zum Sortieren von Daten verwendet wird, aber je nach Benutzereingabe werden die Daten unterschiedlich gruppiert. Im Moment habe ich fünf verschiedene Funktionen, die dieselbe Logik, aber unterschiedliche Gruppierungen enthalten. Gibt es eine Möglichkeit, diese Funktionen zu kombinieren und dynamisch einen Wert festzulegen, der richtig gruppiert wird? Innerhalb der Funktion finden diese Zuweisungen statt

Zum Beispiel speichere ich die Berechnungen manchmal einfach durch:

$calcs[$meter['UnitType']['name']] = ...

aber andere Zeiten benötigen eine spezifischere Gruppierung:

$calcs[$meter['Resource']['name']][$meter['UnitType']['name']][date('Y-m',$start)] =...

Wie Sie sehen können, wird es manchmal in einem mehrdimensionalen Array gespeichert und manchmal nicht. Ich habe versucht, eval () zu verwenden, aber ohne Erfolg (nicht sicher, ob dies der richtige Ansatz ist). Das Speichern der Daten in einer temporären Variablen spart nicht wirklich viel, da es viele verschachtelte Schleifen gibt und if-Anweisungen, damit das Array an mehreren Stellen wiederholt werden müsste.

BEARBEITE

Ich hoffe das folgende Beispiel erklärt mein Problem besser. Es ist offensichtlich eine heruntergekommene Version:

if(){
     $calcs[$meter['UnitType']['name']] = $data;
} else {
    while () {
       $calcs[$meter['UnitType']['name']] = $data;
    }
} 

Jetzt kann dieselbe Logik verwendet werden, aber zum Speichern in verschiedenen Schlüsseln:

if(){
     $calcs[$meter['Resource']['name']][$meter['UnitType']['name']][date('Y-m',$start)] = $data;
} else {
    while () {
       $calcs[$meter['Resource']['name']][$meter['UnitType']['name']][date('Y-m',$start)] = $data;
    }
} 

Gibt es eine Möglichkeit, die Schlüssel im $ calc [] -Array zu abstrahieren, sodass ich eine Funktion haben kann, anstatt mehrere Funktionen mit verschiedenen Array-Schlüsseln zu haben?

Antworten auf die Frage(12)

Ihre Antwort auf die Frage