I want to stress that in the user function, you do need to return either a 1 or a -1 properly; you cannot simply return 0 if the results are equal and 1 if they are not.
The following code is incorrect:
<?php
function myfunction($v1,$v2)
{
if ($v1===$v2)
{
return 0;
}
return 1;
}
$a1=array(1, 2, 4);
$a2=array(1, 3, 4);
print_r(array_uintersect($a1,$a2,"myfunction"));
?>
This code is correct:
<?php
function myfunction($v1,$v2)
{
if ($v1===$v2)
{
return 0;
}
if ($v1 > $v2) return 1;
return -1;
}
$a1=array(1, 2, 4);
$a2=array(1, 3, 4);
print_r(array_uintersect($a1,$a2,"myfunction"));
?>
array_uintersect
(PHP 5)
array_uintersect — Computa una intersección de arrays, compara la información mediante una función de llamada de retorno
Descripción
Computa una intersección de arrays, compara la información mediante una función de llamada de retorno.
Parámetros
- array1
-
El primer array.
- array2
-
El segundo array.
- data_compare_func
-
La función de llamada de retorno de comparación.
La función de llamada de retorno proporcionada por el usuario se usa para la comparación. Debe devolver un valor de tipo integer menor que, igual, o mayor que cero si el primer argumento es considerado, respectivamente, menor que, igual, o mayor que el segundo.
Valores devueltos
Devuelve un array que contiene todos los valores de array1 que están presentes en todos los argumentos.
Ejemplos
Example #1 Ejemplo de array_uintersect()
<?php
$array1 = array("a" => "verde", "b" => "marrón", "c" => "azul", "rojo");
$array2 = array("a" => "VERDE", "B" => "marrón", "amarillo", "rojo");
print_r(array_uintersect($array1, $array2, "strcasecmp"));
?>
El resultado del ejemplo sería:
Array
(
[a] => verde
[b] => marrón
[0] => rojo
)
Ver también
- array_intersect() - Calcula la intersección de arrays
- array_intersect_assoc() - Calcula la intersección de arrays con un chequeo adicional de índices
- array_uintersect_assoc() - Computa la intersección de arrays con una comprobación de índices adicional, compara la información mediante una función de llamada de retorno
- array_uintersect_uassoc() - Computa la intersección de arrays con una comprobación de índices adicional, compara la información y los índices mediante funciones de llamada de retorno
