Ver Mensaje Individual
  #10 (permalink)  
Antiguo 04/07/2013, 06:15
Avatar de Italico76
Italico76
 
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 19 años, 5 meses
Puntos: 292
Respuesta: Problema con array_rand

El problema que veo hasta ahora es que se mete algo en posicion [0] pero es culpa de array_rand() ... si usas shuffle() no sucede eso, diria es un BUG de array_rand() porque en el manual no dice nada de que deba hacer eso

En tu caso, deberias hacer un shuffle() y luego solo mostrar los primeros 4 elementos ... la diferencia es que shuffle() es por referencia que acepta el array asi que lo modifica y no hace copia como array_rand()

Código PHP:
<?php

$a 
= array(9, 26, 31, 42, 4, 2, 11, 13, 19, 20, 23, 24, 28, 30, 39, 39, 1, 5, 14, 18, 36, 49, 15, 16, 25, 27, 33, 34);

shuffle($a);

for (
$i = 0; $i < 4; $i++) {
    if (
$i < 3)
        echo 
$a[$i]." - "; 
    else
        echo 
$a[$i]; 
}
Otra solucion es ignorar ese primer valor:

Código PHP:
<?php

$a 
= array(9, 26, 31, 42, 4, 2, 11, 13, 19, 20, 23, 24, 28, 30, 39, 39, 1, 5, 14, 18, 36, 49, 15, 16, 25, 27, 33, 34);

$rand_keys = array_rand($a, 5);
asort($rand_keys);

for (
$i = 1; $i < 5; $i++) {
    if (
$i < 4)
        echo 
$rand_keys[$i]." - "; 
    else
        echo 
$rand_keys[$i]; 
}
__________________
Salu2!

Última edición por Italico76; 04/07/2013 a las 07:10