Manuel PHP

array_udiff_assoc

(PHP 5)

array_udiff_assocCalcule la différence entre des tableaux avec vérification des index, compare les données avec une fonction de rappel

Description

array array_udiff_assoc ( array $array1 , array $array2 [, array $ ... ], callback $data_compare_func )

Calcule la différence entre des tableaux avec vérification des index, compare les données avec une fonction de rappel.

Note: Notez que cette fonction ne vérifie qu'une seule dimension d'un tableau multidimensionnel. Vous pouvez, bien sûr, tester une dimension particulière en utilisant par exemple, array_udiff_assoc($array1[1], $array2[1], "compare_func");.

Liste de paramètres

array1

Le premier tableau.

array2

Le second tableau.

data_compare_func

La fonction de comparaison.

La fonction utilisateur de rappel est utilisé pour la comparaison. Elle doit retourner un entier inférieur à, égal à, ou plus grand que 0 si le premier argument est considéré comme étant, respectivement, inférieur à, égal à, ou plus grand que le second.

Valeurs de retour

array_udiff_assoc() retourne un tableau contenant toutes les valeurs de array1 qui ne sont présentes dans aucun autre des arguments array2 , ... . Notez que les clés sont utilisées dans les comparaisons contrairement à array_diff() et array_udiff(). La comparaison des données est effectuée en utilisant une fonction de rappel fournie par l'utilisateur, data_compare_func . Ce comportement est différent de celui de array_diff_assoc() qui utilise une fonction de comparaison interne.

Exemples

Exemple #1 Exemple avec array_udiff_assoc()

  1. <?php
  2. class cr { 
  3.    private $priv_member; 
  4.    function cr($val) 
  5.    { 
  6.       $this->priv_member = $val; 
  7.    } 
  8.  
  9.    static function comp_func_cr($a, $b) 
  10.    { 
  11.       if ($a->priv_member === $b->priv_member) return 0; 
  12.       return ($a->priv_member > $b->priv_member)? 1:-1; 
  13.    }  
  14. }  
  15.  
  16. $a = array("0.1" => new cr(9), "0.5" => new cr(12), 0 => new cr(23), 1=> new cr(4), 2 => new cr(-15),);  
  17. $b = array("0.2" => new cr(9), "0.5" => new cr(22), 0 => new cr(3), 1=> new cr(4), 2 => new cr(-15),);  
  18.  
  19. $result = array_udiff_assoc($a, $b, array("cr", "comp_func_cr"));  
  20. print_r($result);  
  21. ?> 

L'exemple ci-dessus va afficher :

Array ( [0.1] => cr Object ( [priv_member:private] => 9 ) [0.5] => cr Object ( [priv_member:private] => 12 ) [0] => cr Object ( [priv_member:private] => 23 ) )

Dans notre exemple, vous voyez que la paire "1" => new cr(4) est présente dans les deux tableaux et donc absente du tableau résultant.


Remonter Remonter
L'éditeur javascript - CSS - Gentoo - Tutoriaux PHP - Tutoriels PHP - Breizh Blog