Hola,
Es que es lo que le dices que haga en el codigo. Explicacion paso a paso:
1.- Lee el primer registro (primera iteracion del while):
$array_web[0]['webname']='web1'
$array_web[1]['webname']='web1'
$array_web[2]['webname']='web1'
2.- Lee el segundo registro (segunda iteracion del while):
$array_web[0]['webname']='web1'
$array_web[1]['webname']='web2'
$array_web[2]['webname']='web2'
$array_web[3]['webname']='web2'
3.- Lee el tercer registro (tercera iteracion del while):
$array_web[0]['webname']='web1'
$array_web[1]['webname']='web3'
$array_web[2]['webname']='web3'
$array_web[3]['webname']='web2'
$array_web[4]['webname']='web3'
Y entonces muestras el 0, 1 y 2.
¿Por que? Porque dentro del bucle le estas diciendo que meta ese valor en un nuevo elemento al final del array (con []), que meta ese valor en el elemento con indice 1 (con [1]), y que meta ese valor en el elemento con indice 2 (con [2]). Y eso en cada iteracion del bucle, que como son 3 registros, son 3 iteraciones.
El codigo que quieres seria simplemente:
Código PHP:
<?php
require ("aut_config.inc.php");
$reinic_wsite_cons = mysql_query("SELECT $selecttbl FROM $sql_tabla ORDER BY visitas DESC LIMIT 0,3") or die($Err01);
while($resultados = mysql_fetch_array($reinic_wsite_cons)) {
$array_web[]['webname'] = $resultados['webname'];
}
echo "webname: ".$array_web[0]['webname']."<br>";
echo "webname: ".$array_web[1]['webname']."<br>";
echo "webname: ".$array_web[2]['webname']."<br>";
?>
que simplemente hace que el valor se almacene en un nuevo elemento al final del array. Como el bucle itera 3 veces, añade 3 elementos.
Saludos.
PD: Si quieres ver lo que hace en el array, pon un print_r($array_web); dentro del while al final. Te mostrara el estado del array.