Один вкладыш, просто для удовольствия:
_array.group_by{ |e| e.first(2) }
.transform_values { |v| v.sum { |e| e.last.to_i } }
.map { |k, v| k << v.to_s }
#=> [["Nokia", "Review", 5], ["Samsung", "Review", 4], ["Apple", "Review", 7]]
Несколько шагов, помогающих понять
_array.group_by{ |e| e.first(2) }
#=> {["Nokia", "Review"]=>[["Nokia", "Review", "3"],["Nokia", "Review", "2"]],
# ["Samsung", "Review"]=>[["Samsung", "Review", "4"]],
# ["Apple", "Review"]=>[["Apple", "Review", "4"], ["Apple", "Review", "3"]]}
_array.group_by{ |e| e.first(2) }.transform_values { |v| v.sum { |e| e.last.to_i } }
#=> {["Nokia", "Review"]=>5, ["Samsung", "Review"]=>4, ["Apple", "Review"]=>7}
Тогда map
.