Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Comparar 2 vectoras

Estas en el tema de Comparar 2 vectoras en el foro de PHP en Foros del Web. Buenas tardes, Estaba intentando comparar 2 vectores con el siguiente código: Código: function sonIguales($vector1, $vector2) { if ( count($vector1) == count($vector2) ){ $valor = array_diff($vector1, ...
  #1 (permalink)  
Antiguo 19/04/2016, 11:47
Avatar de senseeye3led  
Fecha de Ingreso: abril-2016
Ubicación: 127.0.0.1
Mensajes: 163
Antigüedad: 8 años
Puntos: 11
Pregunta Comparar 2 vectoras

Buenas tardes,
Estaba intentando comparar 2 vectores con el siguiente código:

Código:
function sonIguales($vector1, $vector2)
	
	{
		if ( count($vector1) == count($vector2) ){
			
		
		$valor = array_diff($vector1, $vector2);
		if(count($valor) == 0){
			return true;
		}
			else{
				return false;
			}
		}
			else{return false;}
	}
Pero me he dado cuenta que si introduzco los siguientes valores a las variables:

$vec1 ="4729000530";
$vec2 ="5010239674";

Los da por IGUALES puesto que tienen los mismos elementos y entonces array_diff NO encuentra diferencias.

¿Alguna idea para implementar sonIguales() y que tenga en cuenta la posición de los elementos?

Tal vez se podría sacar la longitud del array e ir comparando elemento a elemento, pero no sé si puede que exista alguna manera más optima de hacerlo.

Un saludo y gracias.
  #2 (permalink)  
Antiguo 19/04/2016, 16:49
 
Fecha de Ingreso: diciembre-2015
Ubicación: México
Mensajes: 280
Antigüedad: 8 años, 4 meses
Puntos: 20
Respuesta: Comparar 2 vectoras

Hola amigo...
Aqui te dejo una referencia
http://www.zomeoff.com/equal-identic...arison-in-php/
aunque creo q lo más viable es comparar elemento a elemento
Saludos
  #3 (permalink)  
Antiguo 19/04/2016, 17:41
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 13 años, 6 meses
Puntos: 123
Respuesta: Comparar 2 vectoras

Puedes echarle un ojo a array_intersect_assoc, que devuelve los elementos coincidentes chequeando las claves.
__________________
Unset($vida['malRollo']);
  #4 (permalink)  
Antiguo 20/04/2016, 01:34
Avatar de senseeye3led  
Fecha de Ingreso: abril-2016
Ubicación: 127.0.0.1
Mensajes: 163
Antigüedad: 8 años
Puntos: 11
Respuesta: Comparar 2 vectoras

Código:
function sonIguales($vector1, $vector2)
	
	{
		if ( count($vector1) == count($vector2) ){
			
		
		/* $valor = array_diff($vector1, $vector2); */
		if( $vector1 === $vector2 ){
			return true;
		}
			else{
				return false;
			}
		}
			else{return false;}
	}
Utilizando identical (===) es suficiente. Lo que no tengo muy claro son los consumos a la hora de realizar las comparaciones, si es mejor realizarlo elemento a elemento y/o utilizar identical (===) supongo que éste estará optimizado.

Un saludo y gracias por las respuestas.
  #5 (permalink)  
Antiguo 20/04/2016, 03:23
Avatar de dashtrash
Colaborador
 
Fecha de Ingreso: abril-2007
Ubicación: Ni en Sevilla,ni en Sanlúcar..qué más da..
Mensajes: 927
Antigüedad: 17 años
Puntos: 270
Respuesta: Comparar 2 vectoras

Cita:
Iniciado por senseeye3led Ver Mensaje
Buenas tardes,
Los da por IGUALES puesto que tienen los mismos elementos y entonces array_diff NO encuentra diferencias.
Te los da por iguales, y en un warning, te indica que no son arrays.No tienen los "mismos elementos".No son arrays.Prueba a modificar el array_diff a esto:
Código PHP:
Ver original
  1. $valor = array_diff((array)$vector1, (array)$vector2);

Etiquetas: variable
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 11:27.