$arr = array('q' => '90o1', 'w' => '80o1', 'a' => '70o1', 'b' => '60o1', 'c' => '50o1', 'ç' => '40o1', 'd' => '30o1',..................., '!' => '50w1');

Güzel bir paylaşım, ek olarak burada büyük harfler de atansa ve mb_strtolower ifadesi kullanılmasa, büyük küçük harf dönüşümü hatasız olurdu sanırım