How to receive parameters in one array when passing arguments as an array

An easy solution to your issue is to simply wrap the arguments in another array:

call_user_func_array([$this->controller, $this->method], [$this->params]);

Then it will pass an array as the first argument to your method.