Foros del Web » Programando para Internet » PHP »

hay alguna funcion para esto o no??

Estas en el tema de hay alguna funcion para esto o no?? en el foro de PHP en Foros del Web. Amigos Gracias X leerlo Solo me preguntaba y como no he encontrado lo que busco lo planteo aqui nada dificil... necesito una funcion que me ...
  #1 (permalink)  
Antiguo 20/08/2010, 06:55
Avatar de ACX_POISON  
Fecha de Ingreso: abril-2008
Ubicación: Talca-Chile
Mensajes: 750
Antigüedad: 16 años
Puntos: 7
Pregunta hay alguna funcion para esto o no??

Amigos Gracias X leerlo

Solo me preguntaba y como no he encontrado lo que busco lo planteo aqui nada dificil...

necesito una funcion que me indique si en un array hay o no elementos repetidos...
no como la funcion array_unique que te elimina los repetidos, solo que te indique si hay o no, sino hay alguna sugerencia para hacer la funcion.... gracias...
__________________
Me junto con los que Saben, Queriendo Saber.
  #2 (permalink)  
Antiguo 20/08/2010, 06:58
Avatar de OsSk4R  
Fecha de Ingreso: octubre-2006
Ubicación: $this->home
Mensajes: 824
Antigüedad: 17 años, 6 meses
Puntos: 74
Respuesta: hay alguna funcion para esto o no??

Buenas,

Mira, ayer mismo cree un código que realizaba precisamente eso y lo colgue en las FAQ ha disposición de todos :)

Aquí

Saludos,
  #3 (permalink)  
Antiguo 20/08/2010, 07:06
Avatar de ACX_POISON  
Fecha de Ingreso: abril-2008
Ubicación: Talca-Chile
Mensajes: 750
Antigüedad: 16 años
Puntos: 7
Respuesta: hay alguna funcion para esto o no??

DeFFeR gracias, pero me parece que no es exactamente lo que necesito poque segun entiendo en tu funcion tu debes indicarle un "valor" (color) y la funcion te devuelve el numero de veces que se encuentra en el array, siendo que lo que busco es que sin indicar ese "valor" me diga simplemente si hay o no elementos repetidos....
__________________
Me junto con los que Saben, Queriendo Saber.
  #4 (permalink)  
Antiguo 20/08/2010, 07:11
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: hay alguna funcion para esto o no??

bueno si usas un poco de logica es bastante facil o.O

Código PHP:
Ver original
  1. if(count(array_unique($array)) != count($array)) {
  2.     // hay elementos repetidos
  3. }else{
  4.     // no hay elementos repetidos
  5. }

es solo cosa de usar la imaginacion ;D
__________________
More about me...
~ @rhyudek1
~ Github
  #5 (permalink)  
Antiguo 20/08/2010, 07:12
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: hay alguna funcion para esto o no??

Te recomiendo ver el manual, puedes usar array_count_values para ver si algún elemento tiene más de una entrada y en base a eso puedes saber si tiene o no repeticiones, por ejemplo:
Código PHP:
Ver original
  1. function array_has_duplicates($array)
  2. {
  3.           $duplicates = array_count_values($array);
  4.           $hasDuplicates = false;
  5.           foreach ($duplicates as $element => $total) {
  6.                  if ($total > 1) {
  7.                          $hasDuplicates = true;
  8.                  }
  9.           }
  10.  
  11.           return $hasDuplicates;
  12. }

Saludos.

Edit: o usar lo que te propone @Hidek1

Última edición por GatorV; 20/08/2010 a las 09:04
  #6 (permalink)  
Antiguo 20/08/2010, 07:15
Avatar de ACX_POISON  
Fecha de Ingreso: abril-2008
Ubicación: Talca-Chile
Mensajes: 750
Antigüedad: 16 años
Puntos: 7
Respuesta: hay alguna funcion para esto o no??

Código PHP:
<?php
$colores 
= array(=> 'Azul',
                            
=> 'Amarillo',
                            
=> 'Rojo',
                            
=> 'Amarillo',
                            
=> 'Verde');
                            if(
ELEMENTOS_REPETIDOS($colores))
                            {
                                echo
"ESTA REPETIDOS<br>";
                            }

function 
ELEMENTOS_REPETIDOS($array)
{
    
$hay_repetidos=false;
    foreach(
$array as $n => $valor)
    {
         
$buscar = (array_keys($array$valor));
         
$contador count($buscar);
         
//echo"$valor -> $contador <br>";
         
         
if($contador>1)
         {
             
//echo"Elemento Repetido<br>";
            
$hay_repetidos=true;
            break;
         }
         else
         {
             
//echo"Elemento NO Repetido<br>";
         
}

    }
    return(
$hay_repetidos);
}
?>
con el codigo de DeFFeR llegue a esto = sirve pero quiero probar las opciones que me dan gracias
__________________
Me junto con los que Saben, Queriendo Saber.
  #7 (permalink)  
Antiguo 20/08/2010, 08:18
 
Fecha de Ingreso: agosto-2010
Ubicación: santiago, CHILE
Mensajes: 564
Antigüedad: 13 años, 8 meses
Puntos: 9
Busqueda Respuesta: hay alguna funcion para esto o no??

//aqui tienes el valor y la cantidad de cada elemento repetido en el array....q mas optimizado q esto

<?php

function noRepetidos($el_array){
$mi_array = array();

foreach($el_array as $key=>$valor){
$mi_array[$valor] += 1;
}

return $mi_array;
}

?>

Última edición por __SDP__; 20/08/2010 a las 08:26
  #8 (permalink)  
Antiguo 20/08/2010, 08:31
Avatar de ACX_POISON  
Fecha de Ingreso: abril-2008
Ubicación: Talca-Chile
Mensajes: 750
Antigüedad: 16 años
Puntos: 7
Respuesta: hay alguna funcion para esto o no??

__SDP__ tu funcion es como la que menciona GatorV array_count_values????
por otro lado me asalta una duda en el codigo de GatorV en la linea 6
Código PHP:
      if ($duplicates 1) { 
por que no esto
Código PHP:
      if ($total 1) { 
????
__________________
Me junto con los que Saben, Queriendo Saber.
  #9 (permalink)  
Antiguo 20/08/2010, 08:40
 
Fecha de Ingreso: agosto-2010
Ubicación: santiago, CHILE
Mensajes: 564
Antigüedad: 13 años, 8 meses
Puntos: 9
Respuesta: hay alguna funcion para esto o no??

/*...tienes razon eso de $total > 1....pero hablando de q se parecen las funciones
el utiliza una funcion para sacar los datos...despues lo recorre con un foreach q es normal...pero despues genera una condicion....

si hablamos de velocidad cual es mejor....imaginate 2000000 de registros...q es una cifra comun...yo trabajo en un callcenter imaginate la cantidad de registros y saber los numeros de cada ctm repetido....
*/
  #10 (permalink)  
Antiguo 20/08/2010, 08:43
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: hay alguna funcion para esto o no??

o.O!!! si hablas de optimización pq no usas lo que te dije yo :S?
no tienes que hacer ni bucles ni nada ¬_¬
__________________
More about me...
~ @rhyudek1
~ Github
  #11 (permalink)  
Antiguo 20/08/2010, 08:48
 
Fecha de Ingreso: agosto-2010
Ubicación: santiago, CHILE
Mensajes: 564
Antigüedad: 13 años, 8 meses
Puntos: 9
Respuesta: hay alguna funcion para esto o no??

/* tu sabes el proceso q se hace para contar registros y utilizaste dos, y no solo eso despues utilizas una funcion q hace un proceso q elimina duplicados...el q escribas menos codigo en base a funciones no significa q sea mas rapido....yo utilizo indices como punteros y eso son mis datos no comparo no hago nada solo recorre una vez...*/

if(count(array_unique($array)) != count($array)) {

// hay elementos repetidos

}else{

// no hay elementos repetidos

}
  #12 (permalink)  
Antiguo 20/08/2010, 09:04
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: hay alguna funcion para esto o no??

Cierto es $total > 1, error de dedo
  #13 (permalink)  
Antiguo 20/08/2010, 10:28
 
Fecha de Ingreso: diciembre-2007
Mensajes: 467
Antigüedad: 16 años, 4 meses
Puntos: 3
Respuesta: hay alguna funcion para esto o no??

No te sirvió el código de Hidek1 ?
Saludos.


Federico
  #14 (permalink)  
Antiguo 20/08/2010, 10:33
Avatar de ACX_POISON  
Fecha de Ingreso: abril-2008
Ubicación: Talca-Chile
Mensajes: 750
Antigüedad: 16 años
Puntos: 7
Respuesta: hay alguna funcion para esto o no??

si el codigo de Hidek1 = sirve es solo que queri probar todas las opciones y tiene razon __SDP__ cuando son muchos registros habria que pensar en la optimizacion de la funcion

Gracias a todos
__________________
Me junto con los que Saben, Queriendo Saber.

Etiquetas: funcion
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:35.