Mam trochę logiki, która jest używana do sortowania danych, ale w zależności od danych wprowadzanych przez użytkownika dane są pogrupowane w inny sposób. Obecnie mam pięć różnych funkcji, które zawierają tę samą logikę, ale różne grupy. Czy istnieje sposób na połączenie tych funkcji i dynamiczne ustawienie wartości, która będzie należycie grupowana. Wewnątrz funkcji te zadania są dziejeJak dynamicznie ustawiać klucze tablicy w php
Na przykład, czasami przechowywać obliczeń po prostu:
$calcs[$meter['UnitType']['name']] = ...
ale czasami potrzebujemy bardziej konkretne ugrupowania:
$calcs[$meter['Resource']['name']][$meter['UnitType']['name']][date('Y-m',$start)] =...
Jak widać czasami jest przechowywany w tablicy wielowymiarowej, a innym razem nie. Próbowałem użyć eval(), ale bez powodzenia (nie jestem pewien, czy to właściwe podejście). Przechowywanie danych w zmiennej tymczasowej tak naprawdę nie oszczędza zbyt wiele, ponieważ istnieje wiele zagnieżdżonych pętli i instrukcji, więc tablica musiałaby być powtarzana w wielu miejscach.
EDIT
Mam nadzieję, że poniższy przykład wyjaśnia mój problem lepiej. To jest oczywiście dumbed dół wersja:
if(){
$calcs[$meter['UnitType']['name']] = $data;
} else {
while() {
$calcs[$meter['UnitType']['name']] = $data;
}
}
Teraz ta sama logika może być używany, ale do przechowywania go w różnych kluczy:
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;
}
}
Czy istnieje sposób do abstrakcyjne poza kluczami w $ calc [] tablica tak, że mogę mieć jedną funkcję, zamiast mieć wiele funkcji z różnymi kluczami tablicy?
Czy można lepiej zarządzać przy użyciu obiektów? –
Naprawdę nie rozumiem problemu. Czy próbujesz przesłać zapytania o te struktury danych w jednolity sposób? – erisco
Zrobiłem edycję, aby pomóc wyjaśnić. Mam nadzieję, że to pomoże. – Kramer