There are a couple of things going on here, but the end solution I believe is going to be:
with_items: php_ini_settings
What you are doing is creating a list of lists, and php_ini_settings is being treated as a string. Since php_ini_settings is already a list, just use the line I referenced above.
Thanks a lot Matt, the debug command was enough to find the problem. After including it in the playbook I found this:
File "/usr/lib/python2.7/encodings/utf_8.py", line 16, in decode return codecs.utf_8_decode(input, errors, True) UnicodeEncodeError: 'ascii' codec can't encode character u'\xa0' in position 2: ordinal not in range(128)
So, it seems that my dictionary had an invisible character there making the variable unusable. Thanks a lot Matt, you made my day ;)!!!