Función array_uintersect_uassoc() de PHP
Ejemplo
Comparar los nombres y valores de dos arrays (usando funciones personalizadas para comparar) y devolver la intersección (coincidencias):
<?php function myfunction_key($a,$b) { if ($a===$b) { return 0; } return ($a>$b)?1:-1; } function myfunction_value($a,$b) { if ($a===$b) { return 0; } return ($a>$b)?1:-1; } $a1=array("a"=>"red","b"=>"green","c"=>"blue"); $a2=array("a"=>"red","b"=>"green","c"=>"green"); $result=array_uintersect_uassoc($a1,$a2,"myfunction_key","myfunction_value"); print_r($result); ?>
Definición y uso
La función array_uintersect_uassoc() compara los nombres y valores de dos (o más) arrays de claves y valores, y devuelve la intersección.
Nota:Esta función utiliza dos funciones personalizadas del usuario para comparar; la primera función compara los nombres de las claves, y la segunda función compara los valores!
Esta función compara los nombres y valores de dos (o más) arrays de claves y valores, y devuelve un array de intersección que incluye todos los elementos de los arrays comparados (array1etc.) y también en cualquier otro array de parámetros (array2 o array3 etc.) de los nombres y valores de las claves.
Atención, con array_uintersect() Es diferente que también se compara el nombre de la clave. El valor y el nombre (índice) de la clave se comparan con una función de devolución de llamada.
Sintaxis
array_uintersect_uassoc(array1,array2,array3...myfunction_key,myfunction_value)
Parámetros | Descripción |
---|---|
array1 | Obligatorio. Primer array para comparar con otros arrays. |
array2 | Obligatorio. Array para comparar con el primer array. |
array3,... | Opcional. Otros arrays para comparar con el primer array. |
myfunction_key |
Obligatorio. Nombre de la función de usuario personalizada para comparar nombres de array. Definir una función de comparación invocable. Si el primer parámetro es menor o igual o mayor que el segundo parámetro, la función de comparación debe devolver un entero mayor o igual o mayor que 0. |
myfunction_value |
Obligatorio. Nombre de la función de usuario personalizada para comparar valores de array. Definir una función de comparación invocable. Si el primer parámetro es menor o igual o mayor que el segundo parámetro, la función de comparación debe devolver un entero mayor o igual o mayor que 0. |
usar una función de devolución de llamada personalizada myfunction_key y myfunction_value para calcular la intersección de dos o más arrays (es decir, array1 que existen en, y también en cualquier otro array existente, todos los elementos del array), y devuelve el array de resultados.
Se realiza una comparación simultánea de nombres y valores de claves, como los elementos "a"=>1 y "b"=>1 son diferentes.
myfunction_key La función especificada se utiliza para comparar si los nombres de las claves son iguales.myfunction_value La función especificada se utiliza para comparar si los valores de las claves son iguales. Ambas funciones tienen dos parámetros para comparar. Si el primer parámetro es menor que el segundo, la función devuelve un número negativo, si los parámetros son iguales, debe devolver 0, si el primer parámetro es mayor que el segundo, devuelve un número positivo.
El nombre de la clave en el array devuelto se mantiene sin cambios.
Detalles técnicos
Valor devuelto: | Devuelve un array que contiene todos los elementos que existen array1 en el medio también en todos los otros arreglos. |
Versión de PHP: | 5+ |