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 — Calcule l'intersection de deux tableaux, compare les données en utilisant une fonction de rappel
Description
Calcule l'intersection de deux tableaux, compare les données en utilisant une fonction de rappel.
Liste de paramètres
- array1
-
Le premier tableau.
- array2
-
Le second tableau.
- data_compare_func
-
La fonction de rappel de comparaison.
Pour la comparaison, une fonction de rappel, spécifiée par l'utilisateur, est utilisée. Elle doit retourner un entier, plus petit que, égal à ou plus grand que zéro si le premier argument est considéré comme étant, respectivement, plus petit que, égal à ou plus grand le second.
Valeurs de retour
Retourne un tableau contenant toutes les valeurs du tableau array1 qui sont présentes dans tous les arguments.
Exemples
Exemple #1 Exemple avec array_uintersect()
<?php
$array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
$array2 = array("a" => "GREEN", "B" => "brown", "yellow", "red");
print_r(array_uintersect($array1, $array2, "strcasecmp"));
?>
L'exemple ci-dessus va afficher :
Array
(
[a] => green
[b] => brown
[0] => red
)
Voir aussi
- array_intersect() - Calcule l'intersection de tableaux
- array_intersect_assoc() - Calcule l'intersection de deux tableaux avec des tests sur les index
- array_uintersect_assoc() - Calcule l'intersection de deux tableaux avec des tests sur l'index, compare les donnée en utilisant une fonction de rappel
- array_uintersect_uassoc() - Calcule l'intersection de deux tableaux avec des tests sur l'index, compare les données et les indexes des deux tableaux en utilisant une fonction de rappel
array_uintersect
02-Feb-2007 08:03
