Foros del Web » Programando para Internet » PHP »

Comparar Arrays en el mismo orden

Estas en el tema de Comparar Arrays en el mismo orden en el foro de PHP en Foros del Web. Hola a todos , llevo unos cuantos dias tratando de obtener buenos resultados con esto que necesito hacer pero no me da salido , os ...
  #1 (permalink)  
Antiguo 19/05/2014, 11:36
 
Fecha de Ingreso: noviembre-2007
Mensajes: 498
Antigüedad: 16 años, 4 meses
Puntos: 20
Comparar Arrays en el mismo orden

Hola a todos , llevo unos cuantos dias tratando de obtener buenos resultados con esto que necesito hacer pero no me da salido , os cuento

El caso es comparar los datos sacados de una url con los de una lista de datos que se muestra a través de un bucle , el orden siempre es el mismo en la lista de datos como en la url , primero el precio , luego el ancho , el alto y el pais , el orden será el mismo tanto en la lista como en los datos que se sacan de la url , entonces si por ejemplo a través de la url yo envio pues dos datos de los 4 y estos son los mismos en el mismo orden que los de la lista y con el mismo valor , el dato se mostraría , he tratado de usar array_diff y muchas cosas más pero sin éxito

Ejemplo :

Código PHP:
<?php

$datos_lista
=array("100","20","30","Argentina");

$dato_comparar=array("100","","","Argentina");



?>

Como se puede ver en el ejemplo , en el caso del dato a comparar hay espacios sin datos pero si coinciden totalmente dos de ellos , en este caso si mostraria que hay resultados , pero si el dato a comparar fuese

Código PHP:
<?php
$dato_comparar
=array("10","","","Argentina");
?>

Aqui no debería de mostrar nada ya que solo coincide uno , por tanto los datos a comparar deben coincidr y además coincidr en la misma posición para poder dar un positivo de coincidencia , al armar los datos en arrays y aplicarles por ejemplo array_diff o array_intersect , nunca consigo el objetivo ya que solo buscan coincidencias y con que exista una ya dan positivo con lo cual no me vale


Agradezco la ayuda por adelantado y os mando un saludo a todos , gracias
  #2 (permalink)  
Antiguo 19/05/2014, 11:47
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Comparar Arrays en el mismo orden

Cita:
al armar los datos en arrays y aplicarles por ejemplo array_diff o array_intersect , nunca consigo el objetivo ya que solo buscan coincidencias y con que exista una ya dan positivo con lo cual no me vale
Si diferentes valores del array son exclusivos deberías tener un algoritmo para ello, sólo tu sabes que valores tienen precedencia y cuales no, PHP no adivinará nada de eso.

Código PHP:
Ver original
  1. $a=array("100","20","30","Argentina");
  2. $b=array("100","","","Argentina");
  3. $c=array_diff($a,$b);
  4.  
  5.  
  6. $x=array("100","20","30","Argentina");
  7. $y=array("10","","","Argentina");
  8. $z=array_diff($x,$y);
  9.  

Sólo puedes tener de 0 a 4 diferencias, si no las hay entonces los arrays son idénticos, mientras más diferencias hay menos similitudes existen.

Usa tu ingenio, ninguna función leerá tu mente ni tomará decisiones lógicas por ti.

Es decir, no hagas esto:
Código PHP:
Ver original
  1. // MAL
  2. if (array_diff($a, $b)) // ...
  3.  
  4. // BIEN
  5. if (sizeof(array_diff($a, b)) < 2) // ...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: arrays, orden
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 17:20.