Bonsoir
je trouve pas trés performant la solution avec _ArraySearch(), pourquoi ?
Simplement que cette fonction va également parcourir le tableau.
Donc à chaque tour de la 1er boucle la fonction va encore faire une boucle pour parcourir le tableau pour faire la recherche et renvoyer l'index.
Code : Tout sélectionner
#include <Array.au3>
Local $Array[14] = [1000, 32, 200, 1000, 44, 400, 1000, 65, 60, 700, 1000, 72, 90, 80]
$cherche = _ArrayFindAll($Array, 1000)
_ArrayReverse($cherche)
_ArrayDisplay($cherche)
For $i = 0 To UBound($cherche) - 1
_ArrayDelete($Array, $cherche[$i] + 1)
_ArrayDelete($Array, $cherche[$i])
Next
_ArrayDisplay($Array)
Alors la çà marche, je recherche tout les index du tableau dont la valeur est 1000
je met le tableau a l'envers pour commencer a virer de la fin du tableau vers le début, sinon les index du tableau sont renuméroter
je supprime l'index + 1 car il est plus grand que l'index.
De cette façon on parcours beaucoup moins de fois le tableau, sur le tableau exemple ça à peu d'importance mais dans le cas ou tu as plusieurs centaines de lignes dans ton tableau ceci sera plus rapide.
pour éviter de renverser le tableau:
Code : Tout sélectionner
Local $Array[14] = [1000, 32, 200, 1000, 44, 400, 1000, 65, 60, 700, 1000, 72, 90, 80]
$cherche = _ArrayFindAll($Array, 1000)
_ArrayDisplay($cherche)
For $i = UBound($cherche) - 1 To 0 Step -1
_ArrayDelete($Array, $cherche[$i] + 1)
_ArrayDelete($Array, $cherche[$i])
Next
_ArrayDisplay($Array)
Voila