Maison >développement back-end >tutoriel php >php array_udiff_assoc calcule l'exemple de différence de deux tableaux

php array_udiff_assoc calcule l'exemple de différence de deux tableaux

高洛峰
高洛峰original
2017-01-17 13:59:301506parcourir

La fonction php array_udiff() est utilisée pour comparer les noms de clés et les valeurs de clés de deux (ou plus) tableaux et renvoyer la différence. Cette comparaison est effectuée via une fonction de rappel fournie par l'utilisateur. Si le premier argument est considéré comme inférieur, égal ou supérieur au deuxième argument, un entier inférieur à zéro, égal à zéro ou supérieur à zéro doit être renvoyé, respectivement. Cet article explique comment utiliser la fonction array_udiff() à travers des exemples,

array_udiff_assoc - calcule l'ensemble de différences de tableaux avec vérification d'index et utilise la fonction de rappel pour comparer les données

Basique syntaxe :

array array_udiff_assoc ( array $array1 , array $array2 [, array $ ... ], callable $data_compare_func )
Cette comparaison est effectuée via une fonction de rappel fournie par l'utilisateur. Si le premier argument est considéré comme inférieur, égal ou supérieur au deuxième argument, un entier inférieur à zéro, égal à zéro ou supérieur à zéro doit être renvoyé, respectivement.

Remarque : notez que cette fonction ne vérifie qu'une seule dimension du tableau multidimensionnel. Bien sûr, vous pouvez utiliser array_udiff_assoc($array1[0], $array2[0], "some_comparison_func"); pour vérifier des dimensions plus profondes.

Introduction aux paramètres

php array_udiff_assoc 计算两个数组的差集实例

Valeur de retour

array_udiff_assoc() renvoie un tableau qui inclut tout dans array1 mais pas dans les autres Les valeurs ​dans le tableau des paramètres. Notez que contrairement à array_diff() et array_udiff(), les noms de clés sont également utilisés à des fins de comparaison. La comparaison des données du tableau est effectuée à l'aide des fonctions de rappel fournies par l'utilisateur. C'est le comportement opposé à array_diff_assoc(), qui utilise une fonction interne pour la comparaison.

Instance

<?php
class cr {
  private $priv_member;
  function cr($val) {
    $this->priv_member = $val;
  }
  static function comp_func_cr($a, $b) {
    if ($a->priv_member === $b->priv_member) return 0;
    return ($a->priv_member > $b->priv_member) ? 1 : -1;
  }
}
$a = array(
  "0.1" => new cr(9) ,
  "0.5" => new cr(12) ,
  0 => new cr(23) ,
  1 => new cr(4) ,
  2 => new cr(-15) ,
);
$b = array(
  "0.2" => new cr(9) ,
  "0.5" => new cr(22) ,
  0 => new cr(3) ,
  1 => new cr(4) ,
  2 => new cr(-15) ,
);
$result = array_udiff_assoc($a, $b, array(
  "cr",
  "comp_func_cr"
));
print_r($result);
?>

Résultat de l'exécution :

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 l'exemple ci-dessus, vous pouvez voir que la paire clé-valeur "1" => new cr(4) apparaît dans les deux tableaux en même temps et n'est donc pas incluse dans la sortie de cette fonction.

Merci d'avoir lu, j'espère que cela pourra vous aider, merci pour votre soutien à ce site !

Pour plus d'exemples php array_udiff_assoc de calcul de la différence entre deux tableaux, veuillez faire attention au site Web PHP chinois !

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn