Как сделать только четные буквы заглавными?
preg_replace_callback() вызовет функцию для каждого совпадения паттерна. 

Можно регуляркой /..?/ получить все пары букв (и огрызок в хвосте, если нечетное), а в функции первую из двух делать strtolower(), а вторую strtoupper():
echo preg_replace_callback(
    '/..?/',
    function ($match) {
        return strtolower($match[0][0]) . strtoupper($match[0][1]);
    },
    "Lorem ipsum dolor sit amet consectetur adipisicing elit."
);
// lOrEm iPsUm dOlOr sIt aMeT CoNsEcTeTuR AdIpIsIcInG ElIt.
1) зачем вы даете переменной значение, а потом переписываете его? 
2) foreach($wordarr as $key=>$ltr)   -> $key % 2  == 1