PHP permite también el uso de operadores entre matrices según la siguiente lista:
Que nos da como resultado:
Array ( [0] => huevo [1] => patatas [2] => aceite )
Array ( [0] => huevo [1] => queso [2] => aceite )
Clave: 2; valor: aceite
- $a + $b produce la unión de $a y $b.
- $a == $b produce TRUE si $a y $b tienen los mismos elementos.
- $a === $b produce TRUE si $a y $b tienen los mismos elementos en el mismo orden.
- $a != $b produce TRUE si $a no es igual a $b.
- $a <> $b produce TRUE si $a no es igual a $b.
- $a !== $b produce TRUE si $a no es idéntico a $b.
<?php $tortillaPatatas[0] = "huevo"; $tortillaPatatas[1] = "patatas"; $tortillaPatatas[2] = "aceite"; print_r($tortillaPatatas); echo '<p></p>'; $tortillaQueso[0]= "huevo"; $tortillaQueso[1]= "queso"; $tortillaQueso[2]= "aceite"; print_r($tortillaQueso); if ($tortillaPatatas == $tortillaQueso){ echo '<p> \$tortillaPatatas tiene los mismos elementos que \$tortillaQueso'; }else { echo '<p> $tortillaPatatas <b>NO</b> tiene los mismos elementos que $tortillaQueso</p>'; } ?>
Comparar matrices
Veamos el siguiente ejemplo basado en el anterior:
<?php $tortillaPatatas[0] = "huevo"; $tortillaPatatas[1] = "patatas"; $tortillaPatatas[2] = "aceite"; print_r($tortillaPatatas); echo '<p></p>'; $tortillaQueso[0]= "huevo"; $tortillaQueso[1]= "queso"; $tortillaQueso[2]= "aceite"; print_r($tortillaQueso); $diferencia = array_diff($tortillaPatatas, $tortillaQueso); echo '<h2>Diferencia</h2>'; foreach ($diferencia as $key => $valor) { echo "<p>Clave: $key; valor: $valor "; } $similitudes = array_intersect($tortillaQueso, $tortillaPatatas); echo '<h2>Similitudes</h2>'; foreach ($similitudes as $key => $valor) { echo "<p>Clave: $key; valor: $valor "; } ?>
Que nos da como resultado:
Array ( [0] => huevo [1] => patatas [2] => aceite )
Array ( [0] => huevo [1] => queso [2] => aceite )
Diferencia
Clave: 1; valor: patatasSimilitudes
Clave: 0; valor: huevoClave: 2; valor: aceite
Se puede observar como funcionan las dos funciones, array_diff y array_intersect, las cuales nos dicen cuales son los elementos que difieren y que coinciden entre las dos variables, tal y como se ven en el ejemplo, pero estas dos funciones solo funcionan con índices numéricos, afortunadamente si tenemos índices asociativos (es decir aquellos a los cuales les hemos puesto una cadena), podemos utilizar las funciones: array_diff_assoc o array_intersect_assoc respectivamente.
No hay comentarios:
Publicar un comentario