PHP has it's own separate memory, defined by PHP's configuration files. 128mb is all that PHP is allowed with your configuration, that's a hard limit. You could have 4 TB of RAM and PHP would only use 128mb, any attempt to use more would get that same error.
Edit: Clarification. PHP tried to allocate 20mb for what ever function it needed to use it for. That 20mb allocation put it over the limit of 128mb and the request was denied. You'd need to increase the limit if you want to handle larger datasets.