VariableGroups as $index => $group) { if($group->GroupId == $groupId) { unset($this->VariableGroups[$index]); return; } } } public function GetGroupById($groupId) { foreach($this->VariableGroups as $group) { if($group->GroupId == $groupId) return $group; } return null; } public function AddFieldVariables($values, $groupId = '') { $this->AddVariable('FieldVariables', $values, $groupId); } public function AddVariable($id, $value, $groupId) { $group = $this->GetGroupById($groupId); if($group == null) { $group = (object) ["GroupId" => $groupId, "Variables" => (object) []]; array_unshift($this->VariableGroups, $group); } $group->Variables->$id = $value; } public function GetFieldVariable($fieldId, $variableId, $default = '') { foreach($this->VariableGroups as $group) { if(!isset($group->Variables->FieldVariables)) continue; foreach($group->Variables->FieldVariables as $fieldVariable) { if($fieldVariable->Id == $fieldId && isset($fieldVariable->{$variableId})) return $fieldVariable->{$variableId}; } } return $default; } }