Ruby 对于每个具有键的数组项,收集值并使用键和值数组创建新数组

Ruby 对于每个具有键的数组项,收集值并使用键和值数组创建新数组,ruby,arrays,hash,Ruby,Arrays,Hash,我有一个数组,它的结构如下 linkword = ['people','http:mysite.org/people-appears-here'], ['people','http:mysite.org/people-appears-here-to'], ['people','http:mysite.org/people-appears-here-aswell'], ['crayons','http:mysite.org/crayons-appears-here-

我有一个数组,它的结构如下

   linkword =  ['people','http:mysite.org/people-appears-here'],
    ['people','http:mysite.org/people-appears-here-to'],
    ['people','http:mysite.org/people-appears-here-aswell'],
    ['crayons','http:mysite.org/crayons-appears-here-to'],
    ['crayons','http:mysite.org/crayons-appears-here-aswell'],
    ['boats','http:mysite.org/boats-appears-here-aswell'],
我想创建一个数组(散列?),比如

我正试图弄明白如何做到以上几点

linkword.each_with_object(a) { |(k,v),m| 
    while a == k 
    temphash[a] << v
    end
    pp temphash
    }
    end
linkword.每个_与_对象(a){(k,v),m |
而a==k

temphash[a]adsfdsf是什么意思?你的代码不是有效的Ruby。你的问题是什么?你最近问你是否应该在你的PHP网站中使用框架,然后在它开始吸引向下投票和接近投票时删除了这个问题。这是一个主观问题,因此不适合堆栈溢出-有时间,看看帮助页面。您可以查看轻量级或组件框架,并在时间允许的情况下添加新的框架功能-请参阅Slim、Symfony、Zend。
linkword.each_with_object(a) { |(k,v),m| 
    while a == k 
    temphash[a] << v
    end
    pp temphash
    }
    end
linkword.group_by(&:first).each_with_object({}) {|(k, v), h| h[k] = v.flatten.reject{|i| i == k } }
#=> {"people"=>["http:mysite.org/people-appears-here", "http:mysite.org/people-appears-here-to", "http:mysite.org/people-appears-here-aswell"],
#    "crayons"=>["http:mysite.org/crayons-appears-here-to", "http:mysite.org/crayons-appears-here-aswell"],
#    "boats"=>["http:mysite.org/boats-appears-here-aswell"]}