Ho una logica che viene utilizzata per ordinare i dati ma, a seconda dell'input dell'utente, i dati sono raggruppati in modo diverso. In questo momento ho cinque diverse funzioni che contengono la stessa logica ma diversi raggruppamenti. C'è un modo per combinare queste funzioni e impostare dinamicamente un valore che si raggruppa correttamente. All'interno della funzione queste assegnazioni sono accadendoCome impostare dinamicamente i tasti dell'array in php
Ad esempio, a volte posso conservare i calcoli semplicemente:
$calcs[$meter['UnitType']['name']] = ...
ma altre volte bisogno di un raggruppamento più specifico:
$calcs[$meter['Resource']['name']][$meter['UnitType']['name']][date('Y-m',$start)] =...
Come si può vedere a volte è memorizzato in una matrice multidimensionale e altre volte no. Ho cercato di usare eval() ma senza successo (non sono sicuro che sia l'approccio corretto). Memorizzare i dati in una variabile temporanea non risparmia molto perché ci sono molti cicli annidati e se le istruzioni devono essere ripetute in più punti.
EDIT
spero che il seguente esempio spiega il mio problema meglio. Si tratta ovviamente di una versione storditi:
if(){
$calcs[$meter['UnitType']['name']] = $data;
} else {
while() {
$calcs[$meter['UnitType']['name']] = $data;
}
}
Ora la stessa logica può essere utilizzato, ma per la memorizzazione in diverse chiavi:
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;
}
}
C'è un modo per astrarre le chiavi nella $ calc [] array in modo che possa avere una funzione invece di avere più funzioni con chiavi di array diverse?
Potrebbe essere gestito meglio utilizzando gli oggetti? –
In realtà non capisco il problema. Stai cercando di interrogare queste strutture dati in modo uniforme? – erisco
Ho apportato una modifica per aiutare a spiegare. Speriamo che aiuti. – Kramer