Comparação de arays é um procedimento que ocorre raramente, mas pode ser realizado usando outro conjunto de operadores. Tal como para outros tipos, a identidade e a equivalência dos operadores podem ser usados para essa finalidade:
$a = array (1, 2, 3);
$b = array (1 => 2, 2 => 3, 0 => 1);
$c = array (’a’ => 1, ’b’ => 2, ’c’ => 3);var_dump ($a == $b); // True
var_dump ($a === $b); // False
var_dump ($a == $c); // True
var_dump ($a === $c); // False
Como você pode ver, o operador de equivalência == retorna true se ambos os arrays têm o mesmo número de elementos com os mesmos valores e chaves, independentemente da sua ordem. Já o operador de identidade === , por outro lado, retorna verdadeiro somente se o array contém os mesmos valores e chaves na mesma ordem. Da mesma forma, a desigualdade e a não identidade podem determinar se dois arrays são diferentes:
$a = array (1, 2, 3);
$b = array (1 => 2, 2 => 3, 0 => 1);var_dump ($a != $b); // False
var_dump ($a !== $b); // True
Mais uma vez, o operador de desigualdade só assegura que ambos os arrays contêm os mesmos elementos com os mesmos digitos, enquanto o operador de não-identidade também verifica a sua posição.