Gracias por las respuestas, ya lo saqué todo perfecto.
 
Si alguien tiene el mismo problema os explico un poco, aunque mi caso es un poco particular. 
En el navegador se vería algo así pero no tan feo: 
Asturias Bajar	Subir	Primero	Ultimo
Murcia    Bajar	Subir	Primero	Ultimo
Valencia Bajar	Subir	Primero	Ultimo
Madrid   Bajar	Subir	Primero	Ultimo 
Esta tabla viene de una array que cojo de una base de datos: 
$sql="SELECT preferencias FROM por_user WHERE id='".$_SESSION['id']."'"; 
//Dividiendo este valor con un explode saco la array;  
 Código PHP:
    //Su pulso Primera me pone el valor en primera posicion
if($_GET['primera']!=""){//Poner en 1er puesto
    $dato=$diario[$_GET['primera']];
    unset($diario[$_GET['primera']]);
    array_unshift($diario, $dato);
    $count=(count($diario)-1);
    for( $n=0; $n < $count; $n++ ) {
        $value.=$diario[$n]."--";
    }
    $sql="UPDATE por_user SET  preferencias='".$value."' WHERE id=".$_SESSION['id']."";//actualizo la base de datos
    mysql_query($sql);
    } 
    
  
Las demás es más fácil, por ejemplo bajar seria: 
 Código PHP:
    if($_GET['bajar']!=""){//Poner Un puesto abajo
    $datasube= $diario[$_GET['bajar']];
    $databaja= $diario[$_GET['bajar']+1];
    $diario[$_GET['bajar']+1] =  $datasube;
    $diario[$_GET['bajar']] =  $databaja;
    $diario = array_values($diario);
    $count=(count($diario)-1);
    for( $n=0; $n < $count; $n++ ) {
        $value.=$diario[$n]."--";
    }
    $sql="UPDATE por_user SET  preferencias='".$value."' WHERE id=".$_SESSION['id']."";
    mysql_query($sql);
    } 
    
  Funciona perfecto pero falta perfeccionar un poco , limpiar el código y simplificar, pero nada, ya esta solucionado! 
Un saludo.