Foros del Web » Programando para Internet » PHP »

Contar elementos repetidos ¿Como? (ARRAY)

Estas en el tema de Contar elementos repetidos ¿Como? (ARRAY) en el foro de PHP en Foros del Web. Quisiera saber como contar elementos reprtidos en un array. Estoy creando un sistema para hacer una nube de tags para un sitio (si alguien conoce ...
  #1 (permalink)  
Antiguo 04/10/2008, 22:15
 
Fecha de Ingreso: octubre-2008
Mensajes: 4
Antigüedad: 16 años, 1 mes
Puntos: 1
Contar elementos repetidos ¿Como? (ARRAY)

Quisiera saber como contar elementos reprtidos en un array.


Estoy creando un sistema para hacer una nube de tags para un sitio (si alguien conoce algun sistema ya hecho me ahorrara tiempo y trabajo XD)


Con strip_tags elimino los tags (x)html, luego uso str_word_count($html, 1) para contar las palabras del documento (todo el html lo obtengo capturanod la salida en un buffer con ob_start(); ), hasta aqui bien, ahora yo quiero contar la densidad de las palabras del array, dado que algunas se repiten deseo eliminar los duplicados (si, ya se, array_unique() ), pero ademas de eliminar los duplicados debo contarlos a medida que los elimino, para asi despues armar la nube de tags con los X (pongamos 20) elementos de mayor densidad.

Estuve buscando, pero no he encontrado nada para eliminar y contar elemntos duplicados y no lo he logrado hacer (mas bien si, pero es muy malo, jaja.... consume muchos recursos y demora demasiado, esta mal :( )

Pues bien, me vendria perfecto si alguien:
  1. Sabe como contar y eliminar elementos duplicados en una matriz
  2. Sabe donde puedo encontrar un sistema de "nube de tags" que reciba html como entrada y arroje una salida basado en la densidad de palabras del texto y sin necesidad de definirle palabras claves


Desde ya muchas gracias.
  #2 (permalink)  
Antiguo 05/10/2008, 18:04
Avatar de korg1988  
Fecha de Ingreso: junio-2006
Ubicación: Santa Fe, Argentina
Mensajes: 825
Antigüedad: 18 años, 4 meses
Puntos: 19
Respuesta: Contar elementos repetidos ¿Como? (ARRAY)

toma, aca puse en las FAQ's una funcion que yo mismo cree para realizar esa tarea
http://www.forosdelweb.com/2607158-post202.html
Saludos
  #3 (permalink)  
Antiguo 06/10/2008, 02:40
 
Fecha de Ingreso: octubre-2008
Mensajes: 4
Antigüedad: 16 años, 1 mes
Puntos: 1
Respuesta: Contar elementos repetidos ¿Como? (ARRAY)

:O, habia revisado los aportes, pero no las FAQ, ahora mismo voy a ver.


EDIT: Claro, esa funcion cuenta lso repetidos, lo que yo necesito lograr es que me diga cuantos elementos hay de cada uno de los que se repiten, es decir, si tengo un texto donde hay 3 palabras "hola", necesito que me devuelva por ejemplo una matriz asi $arr['hola']=3;.... no se si me explico. He tratado de hacerla, pero no lo logre.


Gracias por la respuesta.
  #4 (permalink)  
Antiguo 06/10/2008, 09:23
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Contar elementos repetidos ¿Como? (ARRAY)

Puedes poner el código que ya tienes? Si dices que has tratado de hacerla y no ha dado resultado, podríamos ayudarte a ver el error que pueda haber.

La lógica es esta. Explotas la cadena de texto en palabras. Eso te da por resultado un array. Para guardar la contabilidad tienes el array $arr. Lo que haces a continuación es recorrer el array de las palabras, y ves en cada ciclo si la palabra ya existe como índice en el array $arr (array_key_exists()). Si está, quiere decir que anteriormente ya ha pasado por esa palabra, y a su valor le sumas uno. Si no está, creas la variable $arr['palabra'] y le das el valor de uno, lo cual indica que esa palabra apareció una vez.

Intenta armar tu código siguiendo este procedimiento, y si tienes dudas/problemas, los posteas aquí.

  #5 (permalink)  
Antiguo 08/10/2008, 13:21
 
Fecha de Ingreso: octubre-2008
Mensajes: 4
Antigüedad: 16 años, 1 mes
Puntos: 1
Respuesta: Contar elementos repetidos ¿Como? (ARRAY)

me has dado bastante en que pensar y creo que sirve lo qeu dices, luego cuando llegue a casa me pondre manos a la obra, graicas.

en breve estare pasando nuevamente para contarles como me fue y mostrarle como va :)
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.
Tema Cerrado

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 22:38.