各配列の項目と重複する項目を削除する

| コメント(0) | トラックバック(0)
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" );

残る配列は、最初の方なので、あらかじめソートなどをしておく。

 
他の関連のブログは下記からどうぞ。
にほんブログ村 地域生活(街) 東北ブログ 盛岡情報へ にほんブログ村 経営ブログ 経営者へ にほんブログ村 IT技術ブログへ にほんブログ村 IT技術ブログ UNIXへ

トラックバック(0)

トラックバックURL: http://mkplan.com/mt5/mt-tb.cgi/69

コメントする