У меня есть некоторая логика, которая используется для сортировки данных, но в зависимости от ввода пользователя данные группируются по-разному. Прямо сейчас у меня есть пять разных функций, которые содержат одну и ту же логику, но разные группировки. Есть ли способ объединить эти функции и динамически установить значение, которое будет правильно группироваться. В рамках функции эти назначения происходят
Например, иногда я сохраняю вычисления просто:
$calcs[$meter['UnitType']['name']] = ...
но в других случаях нужна более конкретная группировка:
$calcs[$meter['Resource']['name']][$meter['UnitType']['name']][date('Y-m',$start)] =...
Как видите, иногда он хранится в многомерном массиве, а иногда нет. Я пытался использовать eval (), но безуспешно (не уверен, что это правильный подход). Хранение данных во временной переменной на самом деле не сильно экономит, потому что есть много вложенных циклов и если операторы так массив должен будет повторяться в нескольких местах.
EDIT
Я надеюсь, что следующий пример лучше объясняет мою проблему. Это явно тупая версия:
if(){
$calcs[$meter['UnitType']['name']] = $data;
} else {
while () {
$calcs[$meter['UnitType']['name']] = $data;
}
}
Теперь можно использовать ту же логику, но для хранения ее в разных ключах:
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;
}
}
Есть ли способ абстрагировать ключи в массиве $ calc [], чтобы у меня была одна функция вместо нескольких функций с разными ключами массива?