Foros del Web » Programando para Internet » PHP »

Crear un array con datos aleatorios

Estas en el tema de Crear un array con datos aleatorios en el foro de PHP en Foros del Web. Buenas tardes amigos, vengo en busca de su sabiduria y deseando que me guieis para cumplir con lo que necesito. Se trata de lo siguiente: ...
  #1 (permalink)  
Antiguo 31/08/2011, 14:15
 
Fecha de Ingreso: junio-2009
Ubicación: Madrid
Mensajes: 402
Antigüedad: 15 años, 5 meses
Puntos: 20
Crear un array con datos aleatorios

Buenas tardes amigos, vengo en busca de su sabiduria y deseando que me guieis para cumplir con lo que necesito.

Se trata de lo siguiente:

Categoria 1
-/foto-articulo1.jpg
-/foto-articulo2.jpg
...

Categoria 2
-/foto-articulo1.jpg
-/foto-articulo2.jpg

Es decir tengo varias categorias que cada una tiene varios articulos. Yo lo que necesito hacer, y la verdad es que no se por donde empezar, es que aleatorio me coja de cada categoria 2 3 4 articulos o los que sea y formar un array que contenga X datos con contenidos de articulos de las distintas categorias.

Que me decis, como podria realizar eso? Es claro, o no me exprimado lo suficientemente claro.

Gracias,
Alex
  #2 (permalink)  
Antiguo 31/08/2011, 14:32
Avatar de h2swider  
Fecha de Ingreso: julio-2007
Ubicación: Ciudad de Buenos Aires
Mensajes: 932
Antigüedad: 17 años, 4 meses
Puntos: 194
Respuesta: Crear un array con datos aleatorios

Las categorias las traes de una base? o de donde ?

Podrias mostrarnos el codigo que ya tengas hecho asi nos damos una mejor idea
__________________
Codifica siempre como si la persona que finalmente mantedra tu código sea un psicópata violento que sabe donde vives
  #3 (permalink)  
Antiguo 31/08/2011, 14:44
 
Fecha de Ingreso: junio-2009
Ubicación: Madrid
Mensajes: 402
Antigüedad: 15 años, 5 meses
Puntos: 20
Respuesta: Crear un array con datos aleatorios

Tengo una clase con varias funcciones

1. Una funccion que me trae las categorias en un array
2. Otra funccion que lo que hace es sacar de las categorias los articulos en un array
3. Es la otra funccion que necesito... de crear un array que contenga X datos con articulos de varias categorias aleatoriamente.
  #4 (permalink)  
Antiguo 31/08/2011, 14:59
Avatar de h2swider  
Fecha de Ingreso: julio-2007
Ubicación: Ciudad de Buenos Aires
Mensajes: 932
Antigüedad: 17 años, 4 meses
Puntos: 194
Respuesta: Crear un array con datos aleatorios

si ya tienes un array con los productos, lo unico que tienes que hacer es mezclarlo e imprimir los 3 ,4 primeros o los que quieras.

Código PHP:
shuffle($articulos); 
http://php.net/manual/es/function.shuffle.php
__________________
Codifica siempre como si la persona que finalmente mantedra tu código sea un psicópata violento que sabe donde vives
  #5 (permalink)  
Antiguo 31/08/2011, 15:35
 
Fecha de Ingreso: junio-2009
Ubicación: Madrid
Mensajes: 402
Antigüedad: 15 años, 5 meses
Puntos: 20
Respuesta: Crear un array con datos aleatorios

Vale creo que no me he explicado bien.

Pero por lo que tu me has dicho se me ocurre esto

Código PHP:
Tengo esto

$car
['toyota']['lenght'] = '3m';
$car['toyota']['weight'] = '3m';
$car['toyota']['height'] = '1.8m';

$car['chevrolet']['lenght'] = '4m';
$car['chevrolet']['weight'] = '4m';
$car['chevrolet']['height'] = '2m';
....
//eso es solo para ilustrar un poco

for ($i=0;$i<50;$i++)
{
$car[$i] = shuffle($car);

Que me decis?
  #6 (permalink)  
Antiguo 31/08/2011, 15:40
Avatar de h2swider  
Fecha de Ingreso: julio-2007
Ubicación: Ciudad de Buenos Aires
Mensajes: 932
Antigüedad: 17 años, 4 meses
Puntos: 194
Respuesta: Crear un array con datos aleatorios

con el shuffle($car); sin el for bastaria
__________________
Codifica siempre como si la persona que finalmente mantedra tu código sea un psicópata violento que sabe donde vives
  #7 (permalink)  
Antiguo 31/08/2011, 15:55
 
Fecha de Ingreso: junio-2009
Ubicación: Madrid
Mensajes: 402
Antigüedad: 15 años, 5 meses
Puntos: 20
Respuesta: Crear un array con datos aleatorios

He hecho esta prueba

Código PHP:

$car 
= array(
        
'chevrolet' => array (
                                
'lenght' => '5m',
                                
'width' => '3m'
                            
),
        
'ford' => array (
                                
'lenght' => '5m',
                                
'width' => '3m'
                            
)
    );

$telephone = array(
            
'nokia' => array(
                
'optip' => '3g',
                
'camera' => 'no'
            
),
    
            
'samsung' => array(
                
'optip' => '3g',
                
'camera' => 'no'
            
)
        );

echo 
"<pre>";
print_r ($car);
echo 
"</pre>";

echo 
"<pre>";
print_r ($telephone);
echo 
"</pre>";


$categories array_merge($car$telephone);

echo 
"<pre>";
print_r ($categories);
echo 
"</pre>";

shuffle($categories);

echo 
"<pre>";
print_r ($categories);
echo 
"</pre>"
Pero hay dos problemas:
1. el shuffle me devuelve valores aleatorios pero me quita los nombre del array.
2. el shuffle coje todo lo que contiene el array y lo mezcla, yo necesito es que de 1000 valores en el array me saque aleatoriamente 3 (por ejemplo)

Edit:
Cabe especificar que esto sera un crontab en linux

Otra pregunta que va aparte de esto:
Como ya tengo las funcciones que me devuelve categorias y articulos, hay alguna posibilidad que cuando la funccion busca y trae articulos... cuando llegue al articulo numero N pare el proceso?
  #8 (permalink)  
Antiguo 31/08/2011, 18:26
Avatar de portalmana  
Fecha de Ingreso: septiembre-2007
Ubicación: Montevideo-Uruguay
Mensajes: 633
Antigüedad: 17 años, 1 mes
Puntos: 80
Respuesta: Crear un array con datos aleatorios

En el manual de PHP esta esta función y creo que te sirve...


Código PHP:
Ver original
  1. <?php
  2.  
  3. function shuffle_assoc($list) {
  4.   if (!is_array($list)) return $list;
  5.  
  6.   $keys = array_keys($list);
  7.   shuffle($keys);
  8.   $random = array();
  9.   foreach ($keys as $key)
  10.     $random[$key] = $list[$key];
  11.  
  12.   return $random;
  13. }
  14.  
  15. ?>

Saludos
__________________
"La imaginación es más importante que el conocimiento. El conocimiento es limitado, mientras que la imaginación no" -- A.Einstein
objetivophp.com,twitter.com/objetivophp
  #9 (permalink)  
Antiguo 01/09/2011, 03:25
 
Fecha de Ingreso: junio-2009
Ubicación: Madrid
Mensajes: 402
Antigüedad: 15 años, 5 meses
Puntos: 20
Respuesta: Crear un array con datos aleatorios

Gracias portalmana, en cuanto llego a casa lo pruebo.
  #10 (permalink)  
Antiguo 01/09/2011, 05:14
 
Fecha de Ingreso: junio-2009
Ubicación: Madrid
Mensajes: 402
Antigüedad: 15 años, 5 meses
Puntos: 20
Respuesta: Crear un array con datos aleatorios

Cita:
Pero hay dos problemas:
1. el shuffle me devuelve valores aleatorios pero me quita los nombre del array.
2. el shuffle coje todo lo que contiene el array y lo mezcla, yo necesito es que de 1000 valores en el array me saque aleatoriamente 3 (por ejemplo)
Gracias portalmana por tu respuesta, tengo resuelto el punto nr 1.

Ahora, para el segundo encontre la funccion de php array_rand pero el problema es que solo me devuelve los keys del array y no un array multidimensional.

Ya se que una solucion sera en hacer otra funccion que coja del array con todos las categorias y articulos y que busque alli esos key y los devuelva en otro array, pero a vosotros que se os ocurre?

Etiquetas: aleatoria
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:44.