免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123
最近访问板块 发新帖
楼主: thomaslyang
打印 上一主题 下一主题

数组组合---合并神马 [复制链接]

论坛徽章:
0
21 [报告]
发表于 2011-09-09 14:56 |只看该作者
for倒置挺好看的啊,多像英语啊……

论坛徽章:
0
22 [报告]
发表于 2011-09-09 15:00 |只看该作者
for倒置挺好看的啊,多像英语啊……
ywwow 发表于 2011-09-09 14:56



    这个倒置都看不惯的,不适合搞perl。

论坛徽章:
0
23 [报告]
发表于 2011-09-09 15:02 |只看该作者
这个倒置都看不惯的,不适合搞perl。
兰花仙子 发表于 2011-09-09 15:00



    走自己的路,让别人说去吧

论坛徽章:
0
24 [报告]
发表于 2011-09-10 15:10 |只看该作者
我觉得倒置很正常啊,学英语的都知道,不适应倒置的只能说明语感太差(英语很讲语感)。
不想找喷,各抒己见,呵呵。

论坛徽章:
0
25 [报告]
发表于 2011-09-10 16:53 |只看该作者
本帖最后由 antonym55 于 2011-09-10 16:55 编辑

来晚了,楼主问的什么的没看到,还好有快照,还原一下问题


  1. #!/usr/bin/perl

  2. ######################################################
  3. #想请问下. 如果有个数组
  4. #[[A,1,2,3],[B,4,5],[A,6,7],[B],[C,8]...]
  5. #如果实现合并成如下呢(以子数组的第一个元素来合并)
  6. #[[A,1,2,3,6,7],[B,4,5],[C,8]...]
  7. ######################################################

  8.     use warnings;
  9.     use strict;

  10.     use Data::Dumper;


  11.     my $ref_arr = [['A',1,2,3,4], ['B', 34,7,98], ['A', 6,7,8], ['C', 56, 1], ['B', 45,7,8], ['D', 69, 890, 11]];

  12.     my %mergehash = ();
  13.     my $mer_arr = [];
  14.     for my $item (@$ref_arr)
  15.     {
  16.         if( !exists $mergehash{$item->[0]})
  17.         {
  18.             $mergehash{$item->[0]} = $item;
  19.         }
  20.         else
  21.         {
  22.             my ($key) = shift @$item;
  23.             push @{$mergehash{$key}}, @$item;
  24.         }   
  25.     }

  26.     for my $key  (sort {$a cmp $b}(keys %mergehash))
  27.     {   
  28.         push @$mer_arr, $mergehash{$key};
  29.     }

  30.     print Dumper(%mergehash);
  31.     print "Got array ref : \n";
  32.     print Dumper($mer_arr);
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP