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; } }
Merci
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]; } }
Partager