UDF > Array >


_ArraySwap

Echange les éléments d'un tableau 1D ou échange complet ou partiel de deux lignes ou deux colonnes dans un tableau 2D

#include <Array.au3>
_ArraySwap ( ByRef $aArray, $iIndex_1, $iIndex_2 [, $bCol = False [, $iStart = -1 [, $iEnd = -1]]] )

Paramètres

$aArray Tableau à traiter
$iIndex_1 Index du premier élément (1D) ou de la première ligne/colonne (2D) à échanger
$iIndex_2 Index du second élément (1D) ou de la seconde ligne/colonne (2D) à échanger
$bCol [optionnel] Si True alors, pour un tableau 2D, les paramètres suivants font référence à des colonnes; si False (par défaut) les paramètres suivants font référence à des lignes
$iStart [optionnel] Index de la ligne ou de la colonne où démarrer l'échange (tableau 2D seulement)
$iEnd [optionnel] Index de la ligne ou de la colonne où arrêter l'échange (tableau 2D seulement)

Valeur de retour

Succès: Retourne 1
Échec: Retourne -1 et définit @error <> 0.
@error: 1 - $aArray n'est pas un tableau
2 - $aArray n'est pas un tableau 1D ou 2D
3 - $iIndex_1 ou $iIndex_2 en dehors des limites du tableau
4 - $iStart ou $iEnd en dehors des limites du tableau
5 - $iStart est supérieur à $iEnd

Remarque

Les paramètres optionnels sont ignorés pour des tableaux 1D.

En relation

_ArrayReverse

Exemple

#include <Array.au3>

Local $aArray[10] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

_ArrayDisplay($aArray, "Initial", Default, 8)
_ArraySwap($aArray, 3, 7)
_ArrayDisplay($aArray, "Echangé 3 et 7", Default, 8)

Local $aArray_Base[10][10]
For $i = 0 To 9
    For $j = 0 To 9
        $aArray_Base[$i][$j] = $i & " - " & $j
    Next
Next
_ArrayDisplay($aArray_Base, "Initial", Default, 8)

$aArray = $aArray_Base
_ArraySwap($aArray, 3, 7, False)
_ArrayDisplay($aArray, "Echangé Lignes 3 et 7 dans toutes les colonnes", Default, 8)

$aArray = $aArray_Base
_ArraySwap($aArray, 3, 7, False, 2, 5)
_ArrayDisplay($aArray, "Echangé Lignes 3 et 7, dans les colonnes 2 à 5", Default, 8)

$aArray = $aArray_Base
_ArraySwap($aArray, 3, 7, True)
_ArrayDisplay($aArray, "Echangé Cols 3 et 7 dans toutes les lignes", Default, 8)

$aArray = $aArray_Base
_ArraySwap($aArray, 3, 7, True, 2, 5)
_ArrayDisplay($aArray, "Echangé Cols 3 et7 dans les lignes 2 à 5", Default, 8)