Would this work?
$r = array_intersect_key($input, array_unique(array_map('strtolower', $input)));
Doesn't care about the specific case to keep but does the job, you can also try to call asort($input); before the intersect to keep the capitalized values instead (demo at IDEOne.com).