Foros del Web » Programando para Internet » PHP »

Saber si los elementos de un array son iguales o no

Estas en el tema de Saber si los elementos de un array son iguales o no en el foro de PHP en Foros del Web. Buenas tardes, suponiendo que tengo un array con los siguientes elementos separados con comas: Código PHP: $idclientes  = array( 4 , 4 , 3 ,);  Cómo ...
  #1 (permalink)  
Antiguo 05/02/2009, 14:20
Avatar de rockasvivas  
Fecha de Ingreso: julio-2008
Mensajes: 16
Antigüedad: 11 años, 4 meses
Puntos: 0
Saber si los elementos de un array son iguales o no

Buenas tardes, suponiendo que tengo un array con los siguientes elementos separados con comas:

Código PHP:
$idclientes = array(4,4,3,); 
Cómo se le aplicaría un IF para saber si los elementos son iguales?? (En el ejemplo al menos uno NO lo es).

Tal vez esta pregunta ya se haya resuelto en el foro, pero no encuentro las palabras clave para encontrar el POST.

Vi la función array_diff() pero esta función compara 2 arrays y yo sólo quiero saber si los elementos del mismo son iguales o no.

Pueden ayudarme por favor? Gracias 1000.
  #2 (permalink)  
Antiguo 05/02/2009, 16:29
Avatar de rockasvivas  
Fecha de Ingreso: julio-2008
Mensajes: 16
Antigüedad: 11 años, 4 meses
Puntos: 0
Respuesta: Saber si los elementos de un array son iguales o no

Ok, tal vez no fui tan explícito, pero encontré una forma de hacerlo. He aquí mi aportación por si a alguien se le ofrece. Sin embargo si hubiese otra forma más óptima Soy Todo Oídos.

Tengo una tabla llamada PRESUPUESTOS, en la cual nos interesan 2 campos:


idpres
idcliente


Se trata de que el sistema nos genere un Formato o Informe para imprimirselo a un Cliente si es que así lo requiriera. Pero el sistema nos debe dar oportunidad de incluir más de 2 Presupuestos en el Informe, es decir 2 o más registros de nuestra BD (2 o más idpres). Para ello se nos muestra en una primer página los idpres cargados en un SELECT múltiple, y al dar clic en un botón "Generar Informe" nos lleve a una segunda página que pasará los idpres por URL separados por coma:

http://10.56.20.72/admindigitalpro/formcot.php?idords=15,14,13,

PERO!... el sistema nos debe validar si esos presupuestos corresponden a un mismo Cliente, de otra forma debe advertirnoslo. En este ejemplo los idpres corresponden a los siguientes Clientes:

15 para el cliente 4
14 para el cliente 4
13 para el cliente 3

Como se observa, por culpa del PRESUPUESTO 13, el sistema ya no nos generará el Informe

Primeramente hay que poner en un array los valores de la URL y contarlos para saber si el usuario seleccionó previamente más de 2 PRESUPUESTOS:

Código PHP:
$ords explode(",",$_GET[idords]);
 for (
$i=0;$i<count($ords)-1;$i++)
 {
       
$datos[] .= $ords[$i];

 }
                
$elementos = @implode(",",$datos);
$dat = @explode(",",$elementos);
                        
$contardat count(@explode(",",$elementos));

if (
$contardat>1){ 

Después tomar como base a cualquier elemento escogido, para luego poder ser comparado (Aquí es donde no encontré otra forma más óptima):
Código PHP:
$res mysql_query("select idcliente from presupuestos
where idpres = '$_GET[idords]'"
);
$row mysql_fetch_array($res);
$elembase $row[idcliente]; 
En este caso la consulta arroja el último registro, que en éste ejemplo es 14 y será el elemento base para compararlo con los demás.

Luego, empezar a validar si corresponden a un mismo Cliente a partir del array llamado $dat:

Código PHP:
foreach ($dat as $numero){
$rescomp mysql_query("select idcliente from presupuestos
where idpres = '$numero'"
);
$rowcomp mysql_fetch_array($rescomp);
   if (
$elembase==$rowcomp[idcliente]){
       continue;
   }else{
      echo 
'Lo siento, los elementos que usted seleccionó 
no corresponden al mismo Cliente... no se Vale!'
;
   }

Denme su opinión por favor... GRACIAS!
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 04:06.