Buenas tardes!
He probado ambos códigos y con ninguno me funcionaba.
Se me ha encendido la bombilla y digo: "¿Y si me está tratando el valor de 'votos' como texto en lugar de numeros?" Pues le puesto un precioso (int) delante de cada uno y APARCAO!
Muchas gracias a los 2 por contestar y ayudarme.
Os dejo el código funcionando para el que le pueda servir.
Código PHP:
// Ordeno el array de MAYOR a menor por votos
for ($i = 0; $i < $numTracks; $i++){
for($j = $i + 1; $j < $numTracks; $j++){
if((int)($lista[$i]->votos) < (int)($lista[$j]->votos)){
$temp = $lista[$j];
$lista[$j] = $lista[$i];
$lista[$i] = $temp;
}
}
}