UDF > Array >


_ArrayUnique

Retourne les �l�ments d'une colonne d'un tableau 1D ou 2D, en supprimant tous les doublons

#include <Array.au3>
_ArrayUnique ( Const ByRef $aArray [, $iColumn = 0 [, $iBase = 0 [, $iCase = 0 [, $iCount = $ARRAYUNIQUE_COUNT [, $iIntType = $ARRAYUNIQUE_AUTO]]]]] )

Param�tres

$aArray Le tableau � traiter
$iColumn [optionnel] Index, compt� � partir de 0, de la colonne � utiliser - par d�faut 0 (2D uniquement)
$iBase [optionnel] Le tableau est de base 0 ou 1. Par d�faut, de base 0.
$iCase [optionnel] Flag pour indiquer si les op�rations doivent �tre sensibles � la casse. Par d�faut 0 : insensible � la casse.
$iCount [optionnel] Flag pour d�terminer si l'�l�ment [0] contient le nombre d'�l�ments retourn�s (par d�faut) - voir Remarques pour plus de d�tails.
$iIntType [optionnel] Flag pour changer l'algorithme de la fonction - voir Remarques pour plus de d�tails.

Valeur de retour

7 - Incompatibilit� ente les �l�ments Int32 et Int64 - n�cessite la d�finition de $iIntType
Succ�s: Retourne un tableau 1D contenant seulement les �l�ments de cette colonne.
�chec: D�finit @error <> 0.
@error: 1 - $aArray n'est pas un tableau ou est un tableau vide.
2 - $aArray n'est pas un tableau 1D ou 2D
3 - $iBase ou $iCase contient une valeur invalide
4 - $iCount contient une valeur invalide
5 - $iIntType contient une valeur invalide
6 - $iColumn est en dehors des limites du tableau

Remarques

Retourne un tableau contenant les �l�ments uniques.

Par d�faut $iCount est d�fini � $ARRAYUNIQUE_COUNT (1) et un d�compte est plac� dans l'�l�ment [0]. La d�finition de $iCount � $ARRAYUNIQUE_NOCOUNT (0) retourne une liste sans d�compte.

La fonction peut utiliser un algorithme rapide, tant que les �l�ments devant �tre examin�s ne contiennent pas des valeurs Int64 (par exemple des entiers 64 bits, des handles, des pointeurs) - si ces valeurs sont pr�sentes alors la fonction doit utiliser un algorithme plus lent. La d�finition du param�tre $iIntType modifie le comportement de la fonction comme suit:

$ARRAYUNIQUE_AUTO (0) (par d�faut)     : Si le premier �l�ment n'est pas un entier, ex�cute l'algorithme rapide - retourne une erreur si des �l�ments Int64 sont trouv�es.
    : Si le premier �l�ment est un entier, d�finissez les valeurs pertinentes FORCE32 ou Force64 ci dessous.
$ARRAYUNIQUE_FORCE32 (1)     : Force tous les entiers dans le type Int32, ex�cute l'algorithme rapide - retourne une erreur si des valeurs Int64 sont trouv�es.
$ARRAYUNIQUE_FORCE64 (2)     : Force tous les entiers dans le type Int64, ex�cute l'algorithme lent - retourne une erreur si des valeurs Int32 sont trouv�es.
$ARRAYUNIQUE_MATCH (3)         : 0x00000123 et 0x0123 sont consid�r�es comme la m�me valeur, seulement la premi�re rencontr�e est retourn�e - ex�cute l'algorithme lent.
$ARRAYUNIQUE_DISTINCT (4)     : 0x00000123 et 0x0123 sont consid�r�es comme valeurs distinctes, les deux sont retourn�es - ex�cute l'algorithme lent.

Une valeur autre que la valeur par d�faut $ARRAYUNIQUE_AUTO est n�cessaire seulement s'il est connu ou suspect� que des valeurs Int64 vont �tre examin�es. L'obligation d'utiliser un algorithme plus lent lors du traitement des valeurs Int64 est une limitation de l'objet Scripting.Dictionnary utilis� dans la fonction, pas de AutoIt lui-m�me.

En relation

_ArrayMax, _ArrayMin

Exemples

Exemple 1

#include <Array.au3>

Local $aArray[10] = [1, 2, 3, 4, 5, 1, 2, 3, 4, 5] ; Cr�e un tableau 1D qui contient des valeurs en double.
_ArrayDisplay($aArray, "$aArray Initial") ; Affiche le tableau initial.

Local $aArrayUnique = _ArrayUnique($aArray) ; Utilise les param�tres par d�faut pour cr�er un tableau sans doublon.
_ArrayDisplay($aArrayUnique, "$aArray Unique") ; Affiche le tableau sans doublon.

Exemple 2

#include <Array.au3>

Local $aArray[6][2] = [[1, "A"],[2, "B"],[3, "C"],[1, "A"],[2, "B"],[3, "C"]]
_ArrayDisplay($aArray, "Tableau 2D initial") ; Affiche le tableau initial.
Local $aArrayUnique = _ArrayUnique($aArray) ; Utilise les param�tres par d�faut pour cr�er un tableau sans doublon sur la premi�re colonne.
_ArrayDisplay($aArrayUnique, "$aArray col 1") ; Affiche le tableau sans doublon sur la premi�re colonne.

$aArrayUnique = _ArrayUnique($aArray, 1) ; Cr�e un tableau sans doublon � partir de la deuxi�me colonne.
_ArrayDisplay($aArrayUnique, "$aArray col 2") ; Affiche le tableau sans doublon.