Ver Mensaje Individual
  #2 (permalink)  
Antiguo 04/06/2020, 13:34
Avatar de ArturoGallegos
ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.774
Antigüedad: 16 años, 9 meses
Puntos: 1146
Respuesta: if dinamico de arrays

Si tienes dos array con la misma estructura y solo cambian sus valores, la forma mas sencilla de compararlos es con un simple y llano IF

Código PHP:
Ver original
  1. <?php
  2. $factura = array(
  3.   'id' => '123',
  4.   'cliente' => 'don benito'
  5. );
  6.  
  7. $result = array(
  8.   'id' => '124',
  9.   'cliente' => 'don benito'
  10. );
  11.  
  12. $result2 = array(
  13.   'id' => '123',
  14.   'cliente' => 'don benito'
  15. );
  16.  
  17. $result3 = array(
  18.   'cliente' => 'don benito',
  19.   'id' => '123'
  20. );
  21.  
  22. var_dump($factura == $result);
  23. var_dump($factura == $result2);
  24. var_dump($factura === $result3);


Nota: que tiene que ser tal cual la misma estructura, fijate en el caso de $result2 y $result3, con solo cambiar el orden ya te dara un falso.

Si hay cabida a que el orden de los datos venga distinto quizás te interese castear los array para compararlos como objetos, a estos no les afecta si cambia el orden de las propiedades mientras tengan los mismo valores.

Código PHP:
Ver original
  1. <?php
  2. $factura = (object) array(
  3.   'id' => '123',
  4.   'cliente' => 'don benito'
  5. );
  6.  
  7. $result = (object) array(
  8.   'id' => '124',
  9.   'cliente' => 'don benito'
  10. );
  11.  
  12. $result2 = (object) array(
  13.   'id' => '123',
  14.   'cliente' => 'don benito'
  15. );
  16.  
  17. $result3 = (object) array(
  18.   'cliente' => 'don benito',
  19.   'id' => '123'
  20. );
  21.  
  22. var_dump($factura == $result);
  23. var_dump($factura == $result2);
  24. var_dump($factura == $result3);
  25. var_dump($factura === $result2);
  26. var_dump($factura === $result3);


Nota2: la comparación de objetos se tiene que hacer con == si utilizas el === solo funciona si hacen referencia a la misma instancia

Última edición por ArturoGallegos; 04/06/2020 a las 13:40