Aller au contenu

Comprendre la fonction array_udiff() de PHP

Au cœur de PHP se trouve un langage de programmation conçu pour faciliter et optimiser le développement web. L'une des façons dont il atteint cet objectif est en proposant une grande variété de fonctions intégrées que les développeurs peuvent utiliser pour accomplir des tâches courantes.

L'une de ces fonctions est array_udiff(), qui vous permet de comparer des tableaux et de retourner les valeurs présentes dans le premier tableau mais absentes des tableaux suivants. Dans cet article, nous examinerons en détail le fonctionnement de array_udiff() et fournirons des exemples pour vous aider à comprendre comment l'utiliser dans votre propre code.

Qu'est-ce que array_udiff()?

La fonction array_udiff() prend deux tableaux ou plus en arguments et retourne un tableau contenant toutes les valeurs présentes dans le premier tableau mais absentes de tous les tableaux suivants. Cette fonction compare les valeurs des tableaux à l'aide d'une fonction de rappel définie par l'utilisateur, ce qui vous permet de définir précisément comment les valeurs sont comparées.

Comment utiliser array_udiff()

La syntaxe de array_udiff() est la suivante :

PHP array_udiff function syntax

php
array_udiff(array $array1, array $array2 [, array ... ], callable $value_compare_func): array

Décomposons chaque composant de cette syntaxe :

  • array $array1: Le premier tableau à comparer.
  • array $array2: Le deuxième tableau à comparer.
  • array ...: Tableaux supplémentaires optionnels à comparer.
  • callable $value_compare_func: Une fonction de rappel définie par l'utilisateur qui compare les valeurs des tableaux.

La fonction de rappel prend deux arguments, qui représentent les valeurs à comparer. Elle doit retourner un entier inférieur, égal ou supérieur à zéro si le premier argument est respectivement considéré comme inférieur, égal ou supérieur au second.

Voici un exemple qui montre comment utiliser array_udiff() pour comparer deux tableaux de nombres :

PHP use array_udiff() to compare two arrays of numbers

php
<?php

function compare_numbers($a, $b) {
    if ($a == $b) {
        return 0;
    } elseif ($a < $b) {
        return -1;
    } else {
        return 1;
    }
}

$array1 = [1, 2, 3, 4, 5];
$array2 = [2, 4, 6];

$result = array_udiff($array1, $array2, 'compare_numbers');

print_r($result);

?>

Dans cet exemple, nous définissons une fonction appelée compare_numbers() qui prend deux arguments et retourne un entier indiquant quel argument est le plus grand. Nous passons ensuite cette fonction en tant que quatrième argument à array_udiff(), ainsi que les deux tableaux que nous souhaitons comparer.

Le tableau résultant, stocké dans la variable $result, contient les valeurs 1, 3 et 5, qui sont présentes dans $array1 mais pas dans $array2.

Notes supplémentaires

Voici quelques points supplémentaires à garder à l'esprit lors de l'utilisation de array_udiff() :

  • La fonction de comparaison doit être un callable PHP valide, tel qu'un nom de fonction ou une fonction anonyme.
  • L'ordre des tableaux passés en arguments est important : le premier tableau est celui qui sera comparé aux autres.
  • Le tableau résultant ne contiendra que les valeurs du premier tableau qui n'apparaissent dans aucun des tableaux suivants.
  • Le tableau résultant conserve les clés et l'ordre des valeurs du premier tableau.

Conclusion

Dans cet article, nous avons exploré comment utiliser la fonction array_udiff() de PHP pour comparer des tableaux et retourner les valeurs présentes dans le premier tableau mais absentes des tableaux suivants. Nous avons vu comment utiliser une fonction de rappel définie par l'utilisateur pour personnaliser la comparaison des valeurs, et nous avons démontré comment l'appliquer à vos propres projets.

Pratique

Quel est l'objectif de la fonction array_udiff() en PHP ?

Trouvez-vous cela utile?

Aperçu dual-run — comparez avec les routes Symfony en production.