Eu não acho que você possa realmente fazer o que está falando. Você acabaria passando o mesmo array grande para as duas coisas e, no seu exemplo, parece que você quer iterar mais de dois arrays de uma só vez.
E ainda mais importante, mesmo se você puder, é muito feio e difícil de ler. É preciso uma leitura cuidadosa para descobrir quais coisas devem estar ausentes ou presentes.
A sintaxe a seguir funciona com fantoches, é muito mais fácil de ler sem confusão, é muito mais fácil fazer alterações posteriormente e, na verdade, tem menos caracteres:
php::pear {
['ldap', 'mysql', 'sqlite', 'tidy', 'xmlrpc']:
ensure => 'installed';
['ps','snmp']:
ensure => 'absent';
}