Hola,
Aunque me equivoqué en usar la función 'range', aún así podrías haberlo intentando con el método que expliqué anteriormente, la función debió ser 'array_slice',
Código PHP:
<?php
$values = Array('A', 'B', 'C', 'D', 'E');
$value = 'D';
$index = array_search($value, $values);
if ($index) {
$i = array_slice($values, 0, $index);
$j = array_slice($values, $index);
$values = array_merge($j, $i);
}
print_r($values);
?>
En tu caso el 'selected' siempre va a ser el primero después de rotar los valores,
Saludos,