array_diff_uassoc

array_diff_uassoc

(PHP 5)

array_diff_uassoc --  Computa la diferencia entre matrices con un chequeo adicional de 铆ndices, el cual es realizado por una llamada de retorno entregada por el usuario

Descripci贸n

array array_diff_uassoc ( array matriz1, array matriz2 [, array ..., callback func_comparacion_claves] )

array_diff_uassoc() devuelve un array que contiene todos los valores de matriz1 que no est谩n presentes en ninguno de los otros argumentos. Note que las claves son usadas en la comparaci贸n, a diferencia de array_diff().

Esta comparaci贸n es realizada por una llamada de retorno entregada por el usuario. La funci贸n debe devolver un entero menor que, igual, o mayor que cero si el primer argumento es considerado como menor, igual, o mayor que el segundo, respectivamente. Esto en contraste a array_diff_assoc() en donde es usada una funci贸n interna para la comparaci贸n de 铆ndices.

Ejemplo 1. Ejemplo de array_diff_uassoc()

<?php
function func_comparacion_claves($a, $b)
{
    if (
$a === $b) {
        return
0;
    }
    return (
$a > $b)? 1:-1;
}

$matriz1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
$matriz2 = array("a" => "green", "yellow", "red");
$resultado = array_diff_uassoc($matriz1, $matriz2, "func_comparacion_claves");
print_r($resultado);
?>

El resultado del ejemplo seria:

Array
(
    [b] => brown
    [c] => blue
    [0] => red
)

En nuestro ejemplo anterior, puede ver que la pareja "a" => "green" est谩 presente en ambas matrices y por lo tanto no hace parte de la salida de la funci贸n. En contraste, la pareja 0 => "red" est谩 en la salida ya que en el segundo argumento, "red" tiene una clave que es 1.

La igualdad de 2 铆ndices es revisada por la llamada de retorno indicada por el usuario.

Nota: Por favor note que esta funci贸n s贸lo analiza una dimensi贸n de una matriz n-dimensional. Por supuesto que puede analizar dimensiones m谩s profundas usando, por ejemplo, array_diff_uassoc($matriz1[0], $matriz2[0], "func_comparacion_claves");.

Vea tambi茅n array_diff(), array_diff_assoc(), array_udiff(), array_udiff_assoc(), array_udiff_uassoc(), array_intersect(), array_intersect_assoc(), array_uintersect(), array_uintersect_assoc() y array_uintersect_uassoc().