Foros del Web » Programando para Internet » PHP »

evitar campos repetidos php

Estas en el tema de evitar campos repetidos php en el foro de PHP en Foros del Web. Saludos de nuevo amigos del foro, nuevamente necesito su ayuda para resolver este problema; recibo esta lista de datos: $c1 = $_POST["c1"]; $c2 = $_POST["c2"]; ...
  #1 (permalink)  
Antiguo 17/04/2014, 07:00
 
Fecha de Ingreso: agosto-2010
Mensajes: 125
Antigüedad: 13 años, 8 meses
Puntos: 0
evitar campos repetidos php

Saludos de nuevo amigos del foro, nuevamente necesito su ayuda para resolver este problema; recibo esta lista de datos:

$c1 = $_POST["c1"];
$c2 = $_POST["c2"];
$c3 = $_POST["c3"];
$c4 = $_POST["c4"];
$c5 = $_POST["c5"];
$c6 = $_POST["c6"];
$c7 = $_POST["c7"];
$c8 = $_POST["c8"];
$c9 = $_POST["c9"];
$fi = $_POST["fi"];
$ff = $_POST["ff"];

como podría condicionar que todos los datos sean diferentes uno del otro... cual quier idea o sugerencia se las agradecería mucho
  #2 (permalink)  
Antiguo 17/04/2014, 14:23
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: evitar campos repetidos php

Como $_POST es -en esencia- un array, bastaría con que le apliques la función array_unique para que así queden valores únicos en el mismo, sin repetición alguna.

Código PHP:
Ver original
  1. array_map("array_unique", $_POST));

Con la función array_map, aplico la función indicada entre comillas a cada dato de $_POST.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Última edición por Alexis88; 17/04/2014 a las 17:10
  #3 (permalink)  
Antiguo 18/04/2014, 06:23
Avatar de rodrypaladin
Moderador
 
Fecha de Ingreso: abril-2010
Ubicación: Madrid
Mensajes: 2.127
Antigüedad: 14 años
Puntos: 468
Respuesta: evitar campos repetidos php

Me interesa este tema @Alexis88 como se haría por medio de una condición ?? en caso de que todos no sean diferentes de todos...
__________________
No te olvides de dar +1 a quien te echa un cable ;)
  #4 (permalink)  
Antiguo 18/04/2014, 07:02
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: evitar campos repetidos php

El primer parametro de array_map() es el nombre de una funcion que no tiene porque ser array_unique() ni built-in ... podes definirla vos

Código PHP:
Ver original
  1. <?php
  2. function cube($n)
  3. {
  4.     return($n * $n * $n);
  5. }
  6.  
  7. $a = array(1, 2, 3, 4, 5);
  8. $b = array_map("cube", $a);
  9. print_r($b);

http://www.php.net/array_map

La funcion puede ser anonima....
__________________
Salu2!
  #5 (permalink)  
Antiguo 18/04/2014, 07:13
Avatar de rodrypaladin
Moderador
 
Fecha de Ingreso: abril-2010
Ubicación: Madrid
Mensajes: 2.127
Antigüedad: 14 años
Puntos: 468
Respuesta: evitar campos repetidos php

Me sirve para usarlos de los datos que recojo de un $_POST ?? lo que quiero es que en el caso de que haya algún elemento de $_POST igual a otro salte un error
__________________
No te olvides de dar +1 a quien te echa un cable ;)
  #6 (permalink)  
Antiguo 18/04/2014, 07:17
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: evitar campos repetidos php

En realidad...

Cita:
array_map("array_unique", $_POST));
esta mal aplicado porque array_unique() trabaja sobre un array recorriendolo......asi que es redundante el uso de array_map() y de hecho explotara porque devolvera a array_map() un solo valor (escalar)
__________________
Salu2!
  #7 (permalink)  
Antiguo 18/04/2014, 13:13
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: evitar campos repetidos php

Cita:
Iniciado por Italico76 Ver Mensaje
En realidad...



esta mal aplicado porque array_unique() trabaja sobre un array recorriendolo......asi que es redundante el uso de array_map() y de hecho explotara porque devolvera a array_map() un solo valor (escalar)
¿Me creerías si te digo que en un inicio lo apliqué solamente con array_unique y no funcionó? Seguramente hice algo mal y pues, con array_map se solucionó el problema, pero en fin, gracias por la corrección, de cualquier modo pensaba hacerla.
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #8 (permalink)  
Antiguo 18/04/2014, 13:41
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: evitar campos repetidos php

rodrypaladin, en ese caso, podrías utilizar la función array_count_values, la cual devuelve un array en donde los índices o claves son los valores del array original, mientras que los valores son la cantidad de veces que se repite cada dato en el array.

Código PHP:
Ver original
  1. $cuenta = array_count_values($_POST);
  2. foreach ($cuenta as $clave => $valor)
  3.     if ($valor > 1)
  4.         echo 'El valor ' . $clave . ' se repite ' . $valor . ' veces<br />';

Por ejemplo, si el array $_POST estuviera compuesto por los siguientes valores:

Código HTML:
Ver original
  1. Array
  2. (
  3.     [input1] => 1
  4.     [input2] => 2
  5.     [input3] => 3
  6.     [input4] => 3
  7.     [input5] => 2
  8. )

El array resultante sería el siguiente:

Código HTML:
Ver original
  1. Array
  2. (
  3.     [1] => 1
  4.     [2] => 2
  5.     [3] => 2
  6. )

En donde, como dije antes, los índices son los valores del array original y los valores son la cantidad de veces que se repiten en el array. Sabiendo esto, el algoritmo que indico líneas arriba, resultará en lo siguiente:

Código HTML:
Ver original
  1. El valor 2 se repite 2 veces
  2. El valor 3 se repite 2 veces

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #9 (permalink)  
Antiguo 18/04/2014, 16:16
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: evitar campos repetidos php

Italico76, ya recordé el porqué del que lo haya hecho así. Sucede que hice una prueba con un array de checkbox, entonces, el array $_POST llegaba con un array (el de los checkbox) y dentro de este, los datos seleccionados. Por eso es que tuve que utilizar la función array_map, aunque claro, hubiera sido igual si accedía directamente al array interno a través del nombre del array de checkbox, pero mi idea era precisamente no hacerlo así.
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Etiquetas: campos, repetidos
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 15:35.