Este es un problema tan simple, pero el documento PHP no explica por qué está sucediendo.PHP array_diff weirdness
tengo este código:
var_dump($newattributes); var_dump($oldattributes);
var_dump(array_diff($newattributes, $oldattributes));
Para briefity voy a omitir grandes partes de la estructura en realidad estoy usando (ya que cada uno es 117 elementos de longitud) y se corta para el caso.
Tengo una matriz llamada $newattributes
que se parece a:
array(117){
// Lots of other attributes here
["deleted"] => int(1)
}
y otro llamado $oldattributes
que se parece a:
array(117){
// Lots of other attributes here
["deleted"] => string(1) "0"
}
¿Qué se ve diferente ¿verdad? De acuerdo con array_diff
: no. La salida que recibo de array_diff
es:
array(0) { }
He leído la página de documentación sin embargo, dice:
Dos elementos son considerados iguales si y sólo si (string) $ elem1 === (cadena) $ elem2. En palabras: cuando la representación de cadena es la misma.
Y no estoy seguro de cómo "1" puede oponerse a "0".
¿Estoy viendo alguna advertencia con array_diff
que no tomé en consideración?
Buena pregunta, claro, bien pedido y no demasiado largo y demasiado código. ¡Más personas deberían hacerlo así! +1 – Hidde
Esto no debería suceder, y de hecho [no sirve para mí] (http://ideone.com/jDeUd). – Jon
@Jon Gracias por la prueba, voy a mirar más en mi compilación de PHP – Sammaye