各配列の項目と重複する項目を削除する
2009年4月10日
http://www.rfs.jp/sb/perl/05/grep.html
http://www.din.or.jp/~ohzaki/perl.htm#ArrayUnique
ここら辺を参考に作る。
@bkm_topic= ( “1\t2\t3\t4″,”1\t2\t5\t4″,”1\t2\t3\t5” );
のようなデータがあるときに、重複する配列を削除する。
ただし、各配列の4項目目は無視したい。異なっていても重複と見なす。
{
my %tmp;
@bkm_topic = grep( !$tmp{&aaa($_)}++, @bkm_topic );
sub aaa{
my($a,$b,$c,$d)=split(/\t/,$_[0]);
return “$a\t$b\t$c”
}
}
3個目までの項目をチェックして、4項目は異なっていても重複と見なす
すると、このようになる。
@bkm_topic= ( “1\t2\t3\t4″,”1\t2\t5\t4” );
残る配列は、最初の方なので、あらかじめソートなどをしておく。