bonjour,

J'ai un tableau multidimensionnel et j'aimerais enlever la redondance dans celui-çi.

exemple:
fichier xxx
aaa 127 132
aaa 127 132
aaa 48 52
aaa 25 40
aaa 25 40


obtenir au final:
aaa 127 132
aaa 48 52
aaa 25 40

j'étais parti sur créer un tableau vide et le remplir au fur et à mesure avec ce qui est non redondant, mais c'est impossible à priori avec un tableau multidimensionnel.
Quelqu'un a une idée svp?

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
open (F, "< xxx") or die("pbe ouverture!");
 
 
my @tableau               =  ();
my $nbre=0;
 
while( my $ligne=<F>){
    if($ligne =~ /(^scaffold_[0-9]+)\t([0-9]+)\t([0-9]+)$/){
	$nbre++;
	$tableau[$nbre][1]=$1;
	$tableau[$nbre][2]=$2;
	$tableau[$nbre][3]=$3;
    }
}



Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
for (my $i = 0; $i <= $nbre; $i ++){
my $unique = 0;
 BOUCLE: for (my $y = 0; $y <= $nb_final; $y ++){                                           
                    if ( ($tableau[$i][1] eq $final[$y][1]) && ($tableau[$i][2] = $final[$y][2]) && ($tableau[$i][3] = $final[$y][3])){ 
                        $unique = $y;
 
                        last BOUCLE;
                    }
                }
        if ($unique == 0){#pas redondance
                $nb_final ++; 
                $final[$nb_final][1] = $tableau[$i][1]; 
		$final[$nb_final][2] = $tableau[$i][2]; 
		$final[$nb_final][3] = $tableau[$i][3]; 
        }         
}
Merci