Función PHP array_diff_uassoc ()
Definición y uso
los array_diff_uassoc() La función compara las claves y los valores de dos (o más) matrices y devuelve una matriz que contiene las entradas de matriz1 que no están presentes en ninguna de las otras matrices con el mismo valor.
Esta función es diferente de array_diff() porque array_diff () compara los valores donde esta función compara las claves y sus valores en otras matrices.
Esta función es diferente de array_diff_assoc() porque array_diff_assoc () usa un algoritmo interno para comparar las claves y sus valores, mientras que esta función usa una función definida por el usuario para comparar las claves y sus valores.
Sintaxis
array_diff_uassoc ( $array1, $array2 [, $array3..., callback $key_compare_func] );
Parámetros
No Señor | Descripción de parámetros |
---|---|
1 |
array1(Required) La matriz para comparar |
2 |
array2(Required) Esta es una matriz para comparar con la primera matriz |
3 |
array3(Optional) Una matriz para comparar con la primera matriz |
4 |
key_compare_func(Required) Es una función de devolución de llamada que se utiliza para comparar las claves. Esta función de devolución de llamada debe devolver un número entero <, =,> que 0 si se considera que el primer argumento es respectivamente <, =,> que el segundo argumento. |
Valores devueltos
Esta función devuelve una matriz que contiene todas las entradas de matriz1 pero que no están presentes en ninguna de las otras matrices.
Versión PHP
Esta función se introdujo por primera vez en la versión 5.0.0 de PHP.
Ejemplo
Pruebe el siguiente ejemplo. Aquí la función de comparación de teclas devuelve 0 si las teclas $ input1 son iguales a cualquier otra matriz de entrada, de lo contrario devuelve 1 si es mayor o -1 si es menor.
Al comparar claves usando la función definida, tenemos claves "a" en ambos arreglos, por lo que no aparecerá en la salida. Las siguientes teclas "b" y "c" no están en la segunda matriz, por lo que aparecerán en la salida. Otro par 0 => "rojo" está en la salida porque en el segundo argumento "rojo" tiene una clave que es 1 -
<?php
function key_compare_func($a, $b) {
if ($a === $b) {
return 0;
}
return ($a > $b)? 1: -1;
}
$input1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
$input2 = array("a" => "green", "yellow", "red");
$result = array_diff_uassoc($input1, $input2, "key_compare_func");
print_r($result);
?>
Esto producirá el siguiente resultado:
Array
(
[b] => brown
[c] => blue
[0] => red
)
Ejemplo
Pruebe el siguiente ejemplo. Esta vez "rojo" no estará en la salida porque ahora ambas teclas son iguales, que es 0.
<?php
function key_compare_func($a, $b) {
if ($a === $b) {
return 0;
}
return ($a > $b)? 1: -1;
}
$input1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
$input2 = array("a" => "green", "c" => "yellow", "red");
$result = array_diff_uassoc($input1, $input2, "key_compare_func");
print_r($result);
?>
Esto producirá el siguiente resultado:
Array
(
[b] => brown
[c] => blue
)