免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 7469 | 回复: 18
打印 上一主题 下一主题

如何将两个数组中值 作为散列变量中,第一数组的值做key ,另外一个数组的值做value [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2016-01-06 18:57 |只看该作者 |倒序浏览
想了半天还没想处理,不是编程出身,工作需要需要写个提供工作效率的脚本,先谢了!

论坛徽章:
0
2 [报告]
发表于 2016-01-06 19:11 |只看该作者
高手不在,还是没看懂。
@gikey; @givalues从文件中获取满足条件的字符集和数值, 字符串和数值是一一对应的,现在想把它放到%gi变量中,用for 循环写了一下,发现就只写了一个key和value

for ($i=0,$i<$#gikey+1,$i++) {
        %gi = ($gikey[$i] => $givalues[$i]);       
}

论坛徽章:
307
程序设计版块每周发帖之星
日期:2016-04-08 00:41:33操作系统版块每日发帖之星
日期:2015-09-02 06:20:00每日论坛发贴之星
日期:2015-09-02 06:20:00程序设计版块每日发帖之星
日期:2015-09-04 06:20:00每日论坛发贴之星
日期:2015-09-04 06:20:00每周论坛发贴之星
日期:2015-09-06 22:22:00程序设计版块每日发帖之星
日期:2015-09-09 06:20:00程序设计版块每日发帖之星
日期:2015-09-19 06:20:00程序设计版块每日发帖之星
日期:2015-09-20 06:20:00每日论坛发贴之星
日期:2015-09-20 06:20:00程序设计版块每日发帖之星
日期:2015-09-22 06:20:00程序设计版块每日发帖之星
日期:2015-09-24 06:20:00
3 [报告]
发表于 2016-01-06 19:43 |只看该作者
本帖最后由 sunzhiguolu 于 2016-01-06 19:44 编辑

回复 2# emlin129

  1. for ($i=0;$i<$#gikey+1;$i++) {
  2.         $gi{$gikey[$i]} = $givalues[$i];      
  3. }
复制代码

论坛徽章:
0
4 [报告]
发表于 2016-01-06 19:53 |只看该作者
不行,调测了下,%gi 只有一个值   
for ($i=0,$i<$#gikey+1,$i++) {
       
         $gi{$gikey[$i]} = $givalue[$i];
}
       
while (my ($key1, $value1) = each(%gi)) {
print "$key1 => $value1\n";
}
   Gi2/2/4 => 0.73%

论坛徽章:
145
技术图书徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07子鼠
日期:2013-11-18 18:48:57白羊座
日期:2013-11-29 10:09:11狮子座
日期:2013-12-12 09:57:42白羊座
日期:2013-12-24 16:24:46辰龙
日期:2014-01-08 15:26:12技术图书徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59未羊
日期:2014-02-20 14:12:13白羊座
日期:2014-02-26 12:06:59
5 [报告]
发表于 2016-01-06 19:56 |只看该作者
本帖最后由 jason680 于 2016-01-06 19:57 编辑

回复 2# emlin129

@gi{@gikey} = @givalues;   # for %gi
   

论坛徽章:
307
程序设计版块每周发帖之星
日期:2016-04-08 00:41:33操作系统版块每日发帖之星
日期:2015-09-02 06:20:00每日论坛发贴之星
日期:2015-09-02 06:20:00程序设计版块每日发帖之星
日期:2015-09-04 06:20:00每日论坛发贴之星
日期:2015-09-04 06:20:00每周论坛发贴之星
日期:2015-09-06 22:22:00程序设计版块每日发帖之星
日期:2015-09-09 06:20:00程序设计版块每日发帖之星
日期:2015-09-19 06:20:00程序设计版块每日发帖之星
日期:2015-09-20 06:20:00每日论坛发贴之星
日期:2015-09-20 06:20:00程序设计版块每日发帖之星
日期:2015-09-22 06:20:00程序设计版块每日发帖之星
日期:2015-09-24 06:20:00
6 [报告]
发表于 2016-01-06 20:41 |只看该作者
回复 4# emlin129
使用 Jason680 大神提供的代码吧, 简洁高效!

   

论坛徽章:
0
7 [报告]
发表于 2016-01-06 21:47 |只看该作者
  回复 5# jason680

厉害啊,果然是高手,调试了下,搞定我的问题。不过我就是看不懂!先收藏慢慢学习中!
   

论坛徽章:
145
技术图书徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07子鼠
日期:2013-11-18 18:48:57白羊座
日期:2013-11-29 10:09:11狮子座
日期:2013-12-12 09:57:42白羊座
日期:2013-12-24 16:24:46辰龙
日期:2014-01-08 15:26:12技术图书徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59未羊
日期:2014-02-20 14:12:13白羊座
日期:2014-02-26 12:06:59
8 [报告]
发表于 2016-01-07 08:39 |只看该作者
回复 7# emlin129

基础...

$ perldoc perldata
NAME
    perldata - Perl data types

DESCRIPTION
  Variable names
    Perl has three built-in data types: scalars, arrays of scalars, and
    associative arrays of scalars, known as "hashes". A scalar is a single
    string (of any size, limited only by the available memory), number, or a
    reference to something (which will be discussed in perlref). Normal arrays
    are ordered lists of scalars indexed by number, starting with 0. Hashes
    are unordered collections of scalar values indexed by their associated
    string key.
...

    Scalar values are always named with '$', even when referring to a scalar
    that is part of an array or a hash. The '$' symbol works semantically like
    the English word "the" in that it indicates a single value is expected.

        $days               # the simple scalar value "days"
        $days[28]           # the 29th element of array @days
        $days{'Feb'}        # the 'Feb' value from hash %days
        $#days              # the last index of array @days

    Entire arrays (and slices of arrays and hashes) are denoted by '@', which
    works much as the word "these" or "those" does in English, in that it
    indicates multiple values are expected.

        @days               # ($days[0], $days[1],... $days[n])
        @days[3,4,5]        # same as ($days[3],$days[4],$days[5])
        @days{'a','c'}      # same as ($days{'a'},$days{'c'})


   

论坛徽章:
307
程序设计版块每周发帖之星
日期:2016-04-08 00:41:33操作系统版块每日发帖之星
日期:2015-09-02 06:20:00每日论坛发贴之星
日期:2015-09-02 06:20:00程序设计版块每日发帖之星
日期:2015-09-04 06:20:00每日论坛发贴之星
日期:2015-09-04 06:20:00每周论坛发贴之星
日期:2015-09-06 22:22:00程序设计版块每日发帖之星
日期:2015-09-09 06:20:00程序设计版块每日发帖之星
日期:2015-09-19 06:20:00程序设计版块每日发帖之星
日期:2015-09-20 06:20:00每日论坛发贴之星
日期:2015-09-20 06:20:00程序设计版块每日发帖之星
日期:2015-09-22 06:20:00程序设计版块每日发帖之星
日期:2015-09-24 06:20:00
9 [报告]
发表于 2016-01-07 12:58 |只看该作者
本帖最后由 sunzhiguolu 于 2016-01-07 13:02 编辑

回复 4# emlin129
我这里测试没有问题, 提供一些测试数据我试下...

   

论坛徽章:
307
程序设计版块每周发帖之星
日期:2016-04-08 00:41:33操作系统版块每日发帖之星
日期:2015-09-02 06:20:00每日论坛发贴之星
日期:2015-09-02 06:20:00程序设计版块每日发帖之星
日期:2015-09-04 06:20:00每日论坛发贴之星
日期:2015-09-04 06:20:00每周论坛发贴之星
日期:2015-09-06 22:22:00程序设计版块每日发帖之星
日期:2015-09-09 06:20:00程序设计版块每日发帖之星
日期:2015-09-19 06:20:00程序设计版块每日发帖之星
日期:2015-09-20 06:20:00每日论坛发贴之星
日期:2015-09-20 06:20:00程序设计版块每日发帖之星
日期:2015-09-22 06:20:00程序设计版块每日发帖之星
日期:2015-09-24 06:20:00
10 [报告]
发表于 2016-01-07 15:24 |只看该作者
回复 4# emlin129
回帖测试...

   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP