Originariamente inviato da Infrattoni 
sono riuscito a semplificare un pò le cose
allora
	Codice PHP:
	
 $immagini = array('1.jpg','2.jpg');
        $prova= array();
        foreach ($immagini as $key=> $immagine) {
             $prova[] = $immagine;
        }
//$x sarà la foto selezionata in questo caso indice [1] e quindi seconda foto
        for($x=1; $x< count($prova); $x++){
            echo $prova[$x];
//mi stampa correttamente la foto selezionata cioè 2.jpg
//ma ora come continuare a stampare anche 1.jpg?
        } 
 
			
		 
	 
 
La soluzione di lavorare sugli indici è già più decente di quella di voler ordinare l'array!
Ignoro il motivo per cui effettui una copia dell'array delle immagini piuttosto che lavorare su quello originale, magari ti manca qualche cognizione sulla struttura e l'utilizzo degli array   
 
Per il resto:
	Codice PHP:
	
<?php
$selected_photo = 1;
$immagini = array('1.jpg', '2.jpg', '3.jpg', '4.jpg', '5.jpg');
for($x = 0, $start = $selected_photo; $x < count($immagini); $x++, $start = ($start + 1) % count($immagini)) {
    echo $immagini[$start]."
";
}
?>