mira la verdad que no entiendo tu codigo por el nombre de variables que usaste, pero con mi experiencia en programacion cuando he tenido problemas conn while o for o alguna estructura de control pongo echos por todos lados para seguir la secuencia, es decir, a ver q sale:
Código PHP:
$h[1] = 0;
$h[2] = 119;
$h[3] = 119;
$h[4] = 119;
$h[5] = 119;
$h[6] = 119;
$h[7] = 119;
$ale_cad=0;
for($i=1; $i<=5; $i++)
{
$ale = mt_rand(1,7);
echo $ale;//--------------------------------------------
while ( $h[$ale] == 0 )
{
$ale_cad = $ale_cad.$ale;
$ale = mt_rand(1,7);
echo $ale;//--------------------------------------
echo $ale_cad;//---------------------------------
}
$bus = substr_count($ale_cad, $ale);
while ( $bus != 0 )
{
$ale = mt_rand(1,7);
$bus = substr_count($ale_cad, $ale);
echo $ale;//--------------------------------------
echo $bus;//-------------------------------------
}
$ale_cad = $ale_cad.$ale;
echo $ale_cad;//-----------------------------------------
$h[$ale] = $h[$ale] - 1;
echo $h[$ale];//-----------------------------------------
} ;
Intenta ser mas ordenado con los codigos sino te confundes, sin darte cuenta, la idea de este codigo y aprovechando que perdiste 4horas de tu vida intentando ver q le pasa... revisa los valores que te arroje el codigo para ver donde estas errando, esta es una forma rapida y efectiva de encontrar el error. suerte!