Problema de ordenação

souto

To fold or to FOLD?
Olá a todos,

Estou com um pequeno problema, o qual gostaria de estudar convosco para analisar uma forma simples de o resolver.

Imaginem que tenho o seguinte conjunto de strings: bla0, bla1, bla2, bla3, bla11.
Ao usar PHP, se estiver estas strings numa array e fizer um sort() desta, obtenho:
bla0,bla1,bla11,bla2,bla3.

Existe alguma forma de ordenar isto de forma a que ficasse: bla0,bla1,bla2,bla3,bla11 ?

Obrigado e cumprimentos.
 
JavaScript

Código:
	var myarray=[25, 8, 7, 41]
	myarray.sort(function(a,b){return a - b}) //Ordena [7, 8, 25, 41]
 
PHP:
$a = array("b1", "b2", "b11", "b3", "b22", "b5", "b6"); 
natcasesort($a);
print_r($a);

PHP:
Array (
[0] => b1 
[1] => b2 
[3] => b3 
[5] => b5 
[6] => b6 
[2] => b11 
[4] => b22 
)
 
Já agora, em Perl:
Código:
#!/usr/bin/perl
use Sort::Naturally;
print join ' ', nsort(qw/bla98 ble1 bli345 bla1 bla2 bla3 bla13/);

Código:
$ perl sort_nat.pl
bla1 bla2 bla3 bla13 bla98 ble1 bli345
 
Já agora, em Perl:
Código:
#!/usr/bin/perl
use Sort::Naturally;
print join ' ', nsort(qw/bla98 ble1 bli345 bla1 bla2 bla3 bla13/);

Código:
$ perl sort_nat.pl
bla1 bla2 bla3 bla13 bla98 ble1 bli345

Ah chama-se a isto natural sorting. Tudo explicado :)

Perl é engraçado, acho que vou arranjar algo para me entreter nestas férias :P

Obrigado a todos e cumprimentos!
 
Back
Topo