Самый расширяемый и простой из всех, что я могу найти (без цикла if или даже цикла)
function makeImmunities($data) {
$allImmunities = array(
'poison' => '/images/gems/earth.gif',
'earth' => '/images/gems/earth.gif',
'paralyze' => '/images/gems/paralyze.gif',
'death' => '/images/gems/death.gif',
'ice' => '/images/gems/ice.gif',
'invisible' => '/images/gems/invisible.gif',
);
$immunities = array_intersect_key($allImmunities, array_flip(explode(',', str_replace(' ','',$data))));
return implode(' ', array_map(function(&$item, $key) {
return "<img src=\"{$item}\" alt=\"{$key}\" />";
}, $immunities, array_keys($immunities)));
}
Exemple:
var_export(makeImmunities('ice,poison,death'));
выход
'<img src="/images/gems/earth.gif" alt="poison" /> <img src="/images/gems/death.gif" alt="death" /> <img src="/images/gems/ice.gif" alt="ice" />'