On 12/20/06, Josselin <josselin / wanadoo.fr> wrote: > all happy visitors of Paris know about the 'arrondissement', an > administrative division of the city... 20 divisions > > selecting them from a city table I can map them as : > > ['Paris 1' , 'Paris 10' , 'Paris 11' , ..... 'Paris 19' , 'Paris 2' , > 'Paris 20' , 'Paris 3' , .... 'Paris 9' ] > > is there any way to sort this array and get : > > ['Paris 1' , 'Paris 2' , 'Paris 3' , .... 'Paris 9' , 'Paris 10' , > 'Paris 11' , ..... 'Paris 19' , 'Paris 20' ] > Somethings like (I've not tested the code): ['Paris 1' , 'Paris 2' , 'Paris 3' , .... 'Paris 9' , 'Paris 10' , 'Paris 11' , ..... 'Paris 19' , 'Paris 20' ].sort do |a, b| re = /\s(\d+)$/ re.match(a) ai = $1.to_i re.match(b) bi = $1.to_i ai <=> bi end Cheers -- Nicolas DesprïÔ