Es una interesante pregunta. No entendí muy bien si quieres que cada voto tenga un valor distinto a las visitas, o que "pesen" básicamente lo mismo... es decir, que el valor total de una web sea simplemente la suma de los dos valores.
 
En cualquier caso, y si no te he malinterpretado, creo que algo como esto podría aplicarse a tu problema:  
Código:
 <?php
// Estructura con la informacion de las "webs". Esta forma de disenyar
// la estructura el completamente arbitraria.
$datos = array (array ('nombre' => 'web1', 'visitas' => 3, 'votos' => 1),
                array ('nombre' => 'web2', 'visitas' => 5, 'votos' => 2),
                array ('nombre' => 'web3', 'visitas' => 2, 'votos' => 0),
                array ('nombre' => 'web4', 'visitas' => 8, 'votos' => 8));
$cantidad = count ($datos);  // Tamanyo del arreglo
// Ahora, para presentarlos en orden, se asume que el "valor" de cada
// web es dado simplemente por la suma de sus visitas y sus votos (es
// decir, la cantidad de visitas es igual de importante que el numero
// de votos).
$valores = array();  // Arreglo temporal
for ($i = 0; $i < $cantidad; $i++) {
    // Se forma un arreglo temporal para crear una relacion entre cada
    // web y su "valor de orden".
    array_push ($valores, array ('indice' => $i,
                                 'valor' => $datos[$i]['visitas'] +
                                 $datos[$i]['votos']));
}
// Ahora se realiza un ordenamiento en el arreglo temporal,
// implementando una rutina propia con el proposito de no hacer mas
// manipulaciones con los tipos de datos.
// Algoritmo de ordenamiento por seleccion, orden decreciente.
for ($i = 0; $i < $cantidad - 1; $i++) {
    $mayor = $i;
    for ($j = $i + 1; $j < $cantidad; $j++)
        if ($valores[$j]['valor'] > $valores[$i]['valor'])
            $mayor = $j;
    if ($mayor != $i) {
        $aux = $valores[$i];
        $valores[$i] = $valores[$mayor];
        $valores[$mayor] = $aux;
    }
}
// Finalmente... Mostrar los datos en orden.
for ($i = 0; $i < $cantidad; $i++) {
    print $i + 1 . ". " . $datos[$valores[$i]['indice']]['nombre'] . " - " .
        $datos[$valores[$i]['indice']]['votos'] . " votos, " .
        $datos[$valores[$i]['indice']]['visitas'] . " visitas.\n<br />\n";
}
?>
  Como verás, me inventé la estructura de tus datos, colocándolos en un arreglo de arreglos. Si los almacenas de otra manera (cosa bastante probable), podrías o bien retocar el código, o quizás agregar un paso previo en el que transformes tus datos a una estructura similar a la que usa este código. Espero que sea fácil de entender. :)