Matrices
PHP Manual

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 )

Compara matriz1 contra matriz2 y devuelve la diferencia. En contraste con array_diff(), las claves de las matrices son usadas en la comparación.

A diferencia de array_diff_assoc(), una función de llamada de retorno creada por el usuario es usada para la comparación de índices, no una función interna.

Lista de parámetros

matriz1

La matriz a comparar

matriz2

Una matriz contra la que se realiza la comparación

...

Más matrices a incluir en la comparación

func_comparacion_claves

Función tipo callback a usar. La función de llamada de retorno debe devolver un entero menor, igual o mayor a cero si el primer argumento es considerado respectivamente como menor, igual o mayor que el segundo.

Valores retornados

Devuelve un valor tipo array que contiene todas las entradas de matriz1 que no están presentes en ninguna de las otras matrices.

Ejemplos

Example#1 Ejemplo de array_diff_uassoc()

La pareja "a" => "green" está presente en ambas matrices y por lo tanto no es incluida en la salida de la función. En contraste, la pareja 0 => "red" está en la salida porque en el segundo argumento "red" tiene una clave que es 1.

<?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
)

La igualdad de 2 índices es chequeada por la función de llamada de retorno entregada por el usuario.

Notes

Note: 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");.

Ver también


Matrices
PHP Manual