Foros del Web » Programando para Internet » PHP »

Ayuda con array

Estas en el tema de Ayuda con array en el foro de PHP en Foros del Web. Hola a todos, En un array tengo muchos valores, y lo que quiero hacer es detectar cuales son los primeros 5 con el mismo valor, ...
  #1 (permalink)  
Antiguo 20/05/2008, 17:13
Avatar de chidomen  
Fecha de Ingreso: enero-2005
Ubicación: aquí
Mensajes: 380
Antigüedad: 19 años, 2 meses
Puntos: 0
Pregunta Ayuda con array

Hola a todos,

En un array tengo muchos valores, y lo que quiero hacer es detectar cuales son los primeros 5 con el mismo valor, por ejemplo:

Valores
negro = 47 veces
blanco = 39 veces
azul = 36 veces
gris = 28 veces

Espero hacerme dado a entender.

Saludos a todos
__________________
.. simplemente soy un mexicano apasionado ..
guasanericonsul.com
  #2 (permalink)  
Antiguo 20/05/2008, 17:45
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Ayuda con array

$palabras = array();
foreach ($arreglo as $palabra)
{
$cur=isset($palabras[$palabra])? $palabras[$palabra]: 0;
$palabras[$palabra] = $cur +1;
}
print_r($palabras);
  #3 (permalink)  
Antiguo 21/05/2008, 13:26
Avatar de chidomen  
Fecha de Ingreso: enero-2005
Ubicación: aquí
Mensajes: 380
Antigüedad: 19 años, 2 meses
Puntos: 0
Pregunta Respuesta: Ayuda con array

Hola, gracias por contestar, me sirvio el script y lo integre a lo que estoy queriendo hacer, pero tengo unos detalles.
Pero mi duda es la siguiente, tengo una lista con cientos de registros y lo que quiero hacer es obtener los 10 valores que mas se repitan.
he intentado usar array_count_values(), array_values() pero sigo con el mismo problema.
Que función puedo usar para esto?
Código PHP:
$file_handle fopen("/ruta/para/archivo.txt""r");

while (!
feof($file_handle)) {
$line fgets($file_handle);

$wordChunks explode(";"$line);
//echo "Numero:".count($wordChunks)."<br>";
for($i 0$i count($wordChunks); $i++){
$cur = isset($wordChunks[$i])? $wordChunks[$i]: 0;
$wordChunks[$i] = $cur+1;
}

}
print_r($wordChunks);
fclose($file_handle); 
Saludos
__________________
.. simplemente soy un mexicano apasionado ..
guasanericonsul.com
  #4 (permalink)  
Antiguo 21/05/2008, 16:01
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Ayuda con array

Puedes usar array_slice para obtener solo las ultimas 10 entradas, claro primero ordenalas con sort para que lo tengas de mayor a menor.

Saludos.
  #5 (permalink)  
Antiguo 21/05/2008, 16:03
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Ayuda con array

crea un arreglo temporal... $temporal=array();

itera el arreglo en un foreach($arreglo as $llave => $valor)

luego.... aumentas los valores de las llaves....

SI $valor no existe en $temporal, agregamos a $temporal[$valor] = 1;
SI ya existe (osea, SINO) incrementas el valor... $temporal[$valor] += 1;

luego... al final, ya tienes en $temporal las repeticiones... no?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
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 06:39.