Google
Web dns.bdat.net

Re: [PHP-ES] Busqueda en arrays

Write haof XML files: Vladimir Hernández ( vladimir(EN)inter-connect.us)
Fecha: mié 16 mar 2005 - 19:39:49 CET


Este script elige cuátro números aleatorios, cada uno del 1 al 14, sin repetir
ninguno. Ya lo probé.

<?php

# Inicializando variables
$i=0;
$salida = array();

# Generando números
while ($i<4) {
        $temp=rand(1,14);
        # Si el número generado no se encuentra previamente en el array
        if(in_array($temp,$salida)==false){
                $salida[$i]=$temp;
                $i++;
        }
}

# Organizando el array
sort($salida);
reset($salida);

# Mostrando la salida
for ($i=0;$i<4;$i++){
        echo $salida[$i]." ";
}

?>

Espero te sirva

Vladimir Hernández

-- 
Inter-Connect
Web Design and Translations
Diseño de Páginas de Internet y Traducciones
www.inter-connect.us
Linux registered user # 374079
counter.li.org
On Wednesday 16 March 2005 07:40, Alex wrote:
> Buenas tardes.
>
>
>
> Estoy parado en un problema con arrays y números aleatorios.
>
>
>
> Se trata de escoger 4 números aleatorios de  1 a 14 y no quiero que se
> repitan.
>
>
>
> Lo que yo hacia era guardarlos en un array y compararlos para evitar que se
> repitan, pero como la comparación la hacia de 1 con el siguiente, no se me
> repiten seguidos, pero sí se pueden repetir el 1 con el 3 o el 4 o el 2 con
> el 4.
>
>
>
> Es evidente que no es la manera correcta, pero he intentado por varios
> medios comparar de otra forma y no logro encontrar como.
>
>
>
> Otra cosa que se me ocurrió fue pasarlo a string y allí comparar, pero
> tampoco me dio buen resultado.
>
>
>
> La intención es que se trate de una función para no limitar a 4 la búsqueda
> de números, dado que en otros casos busco solo 2 o hasta 7.
>
>
>
> Si alguien me puede ayudar, se lo agradeceré.
>
>
>
> Un saludo.
>
>
>
> Alex.
-- 
PHP Spanish Localization Talk Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


Este archivo fue generado por hypermail 2.1.7 : sáb 19 mar 2005 - 01:01:24 CET