我有两个数组:
dates = [1,2,3]
values = [10,20,30]
我该如何将它们合并?
[{date:1,value:10},{date:2,value:20}...etc]
答案 0 :(得分:7)
public function show($groupA, $groupB, $groupC)
{
$query = FodMap::query();
if ($groupA !== 'none') {
$query->where('groupA', '=', $groupA)
}
if ($groupB !== 'none') {
$query->where('groupB', '=', $groupB)
}
if ($groupC !== 'none') {
$query->where('groupC', '=', $groupC)
}
return $query->get();
}
答案 1 :(得分:0)
另一种方法是:
dates.each_with_index.map{|d,i| {:date=>d,:value=>values[i]}}
# => [{:date=>1, :value=>10}, {:date=>2, :value=>20}, {:date=>3, :value=>30}]
答案 2 :(得分:0)
<强>解决方案强>
dates = [1,2,3]
values = [10,20,30]
h = ([:date].product(dates)).zip([:value].product(values)).collect(&:to_h)
p h
<强>输出强>
[{:date=>1, :value=>10}, {:date=>2, :value=>20}, {:date=>3, :value=>30}]
PS: 上面的输出看起来不同,但它与你期望的一样 - Ruby Hash。请参阅下面的证明
p [{date:1,value:10},{date:2,value:20}] # This is what you want
产生
[{:date=>1, :value=>10}, {:date=>2, :value=>20}]