Не очень знаком с синтаксисом Ruby/Python. Если речь о том, чтобы найти все гласные буквы, которые хотя бы раз присутствуют в слове, то, например,$sWords = 'fuckthemall aeouy yeah';
$rgResult = array_intersect(['a', 'e', 'i', 'o', 'u', 'y'],str_split($sWords));
Если хочется через замыкание, то - пожалуйста
$sWords = 'fuckthemall aeouy yeah';
$rgResult = array_filter(['a', 'e', 'i', 'o', 'u', 'y'],function($sLetter) use ($sWords)
{
return strpos($sWords, $sLetter)!==false;
});
Суть в том, что не стоит недооценивать инструмент, который не до конца знаете (или не знаете вовсе). В PHP начиная с версии 5.4 появилось много хороших вещей.
Лично я считаю PHP трудным языком - потому что на нём трудно писать "правильно" - язык действительно предоставляет слишком много возможностей, так что начинающему программисту легко запутаться и начать делать неверные решения. Не спорю так же и с тем, что очень много плохого "наследия" - в виде всевозможных side-effect функций наподобие sort/shuffle - тут, увы, ничего не поделаешь. Надеюсь только, что в будущих релизах волевым решением сделают всё единообразно и уберут этот процедурный подход PHP 4.