# Re: multi dim array?

**URL:** <https://www.ruby-forum.com/t/re-multi-dim-array/73070>\
**Category:** Ruby\
**Created:** [October 21, 2006, 12:29am UTC](https://www.ruby-forum.com/t/re-multi-dim-array/73070 "2006-10-21T00:29:51Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![phrogz](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/2acd7d/32.png) [@phrogz](https://www.ruby-forum.com/u/phrogz)\
**Post date:** [October 21, 2006, 12:29am UTC](https://www.ruby-forum.com/t/re-multi-dim-array/73070/1 "2006-10-21T00:29:51Z")

</div>

From: Robert K. [[mailto:removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)]

> irb(main):002:0\> r={“a”=\>“B”,“e”=\>“X”}  
> =\> {“a”=\>“B”, “e”=\>“X”}  
> irb(main):003:0\> “message”.gsub(/./){|k| r[k]||k }  
> =\> “mXssBgX”

Ooh, that’s elegant, using gsub’s block like that.  
I think I’m going to steal it.

(I don’t have any need for it, but…you know…I gotta HAVE it.)

---

<div class="post-metadata">

**Author:** ![phrogz](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/2acd7d/32.png) [@phrogz](https://www.ruby-forum.com/u/phrogz)\
**Post date:** [October 21, 2006, 1:31am UTC](https://www.ruby-forum.com/t/re-multi-dim-array/73070/2 "2006-10-21T01:31:56Z")

</div>

Gavin K. wrote:

> 

It might run faster if you do this:

reg = Regexp.new(r.keys.map {|k| Regexp.quote(k)}.join("|"))  
p “message”.gsub(reg){|k| r[k] }

(The #quote is needed in case of r["|"] = “x”, for example.)

Saves you a hash lookup for each char. I guess it’s faster, but I might  
be wrong. Benchmarking left as an exercise for the reader, i.e. I’m lazy  
:).
