Obtener valores aleatorios de un array con php
- Detalles
- Categoría: Programación
- Última actualización el Lunes, 26 Diciembre 2011 20:07
- Escrito por cybnet
- Visto: 2692
En mi lento aprendizaje de php hoy me surgió un problema: necesito obtener un valor aleatorio utilizando php de una variable gestionada con un array.
Me encontré con la función rand() de php con la cual pude resolver el problema y luego conocí array_rand() que creo que es mucho mejor para mi cuestión sobre obtener un valor aleatorio de un array.
Usando rand() para obtener un valor aleatorio de un array
<?php
$mi_array = array("Paco","Pepe","Ana","Carmen","85","452");
$max = count($mi_array)-1;
$numaleatorio = rand(0,$max);
echo "valor aleatorio del array: ".$mi_array[$numaleatorio];
?>
La función rand() de php devuelve un número aleatorio comprendido, en este caso, entre 0 y $max, y la he usado en este ejemplo para obtener un valor aleatorio del índice del array, así, al tener una posición aleatoria del índice puedo obtener un valor aleatorio del array con $mi_array[$numaleatorio].
Usando array_rand() para obtener el valor aletaorio de un array
Visto la función rand() me encontré con array_rand() que hace justamente lo que quiero sin necesidad de dar rodeos.
array_rand() necesita especificar el array de entrada y el número de entradas a elegir, si se pone 1 devuelve un valor aleatorio del índice del array, si se pone más de 1 devuelve un array con valores escogidos aleatoriamente del índice del array original. Si se pone un número de entradas a elegir mayor al número de entradas del array original nos dará error.
Es interesante utilizar la función shuffle() para desordenar el array antes de utilizar array_rand().
Por tanto así puede quedar una función para elegir un valor de un array de forma aleatoria:
<?php
$mi_array = array("Paco","Pepe","Ana","Carmen","85","452");
shuffle($mi_array);
$random = array_rand($mi_array,1);
echo "valor aleatorio del array: ".$mi_array[$random];
?>
Vea también Elegir un valor aleatorio de un array de forma ponderada con php.
Estimado Cybnet:tengo en pantalla unas 15 tablas con diferentes categorias de productos, las cuales se abren para mostrar las diferentes marcas. Debo permitir seleccionar o no una marca para copiarla en un campo que me servirá para buscar en una tabla sql. Muestro las tablas, el usuario puede seleccionar la marca que desea, pero no se como hacer para que esa marca se copie en el campo que se usa para buscar. Me puedes ayudar?

@Kompañero, no conozco nada TOMCAT y casi nada de Java (Sun Microsystems) que es para lo que se hizo TOMCAT. No obstante debe decirte que puedes usar PHP con TOMCAT. Aquí encontré un tutorial de como hacerlo http://wiki.apache.org/tomcat/UsingPhp, aunque según dicho tutorial solo vale para PHP version 4 y no para la versión 5.






RSS
Perfil
Artículos
RSS