[PHP]Sortowanie tablicy


(northwest) #1

Witam,

mam taką tablicę:

Array

(

    [0] => 0||plakat_b2.cdr

    [1] => 10||wizytowka_90x50_pozioma.cdr

    [2] => 11||ulotka_a4_na_C.cdr

    [3] => 12||ulotka_a4_na_V.cdr

    [4] => 13||ulotka_a4_na_Z.cdr

    [5] => 14||ulotka_a4.cdr

    [6] => 15||ulotka_a5_na_V.cdr

    [7] => 16||ulotka_a5_pionowa.cdr

    [8] => 17||ulotka_a5_pozioma.cdr

    [9] => 19||ulotka_a6_pozioma.cdr

    [10] => 1|makieta firmowka 80x55mm |firmowka_pozioma.cdr

    [11] => 21||ulotka_a6_pozioma.cdr

    [12] => 22||ulotka_dl_pionowa.cdr

    [13] => 23||ulotka_dl_pozioma.cdr

    [14] => 24||pocztowka_dl_pionowa.cdr

    [15] => 25||pocztowka_dl_pozioma.cdr

    [16] => 26||pocztowka_midi_pionowa.cdr

    [17] => 27||pocztowka_midi_pozioma.cdr

    [18] => 28||pocztowka_mini_pionowa.cdr

    [19] => 29|pocztówka MINI pozioma|pocztowka_mini_pozioma.cdr

    [20] => 2|makieta firmowka 80x55mm |firmowka_pionowa.cdr

    [21] => 30|1234567890|pocztowka_standard_pozioma.cdr

    [22] => 30||pocztowka_standard_pionowa.cdr

    [23] => 31||koperta_dl_okienko.cdr

    [24] => 32||koperta_dl.cdr

    [25] => 33||koperta_c4.cdr

    [26] => 34||koperta_C6.cdr

    [27] => 35||koperta_c5.cdr

    [28] => 36||papier_firmowy_a4.cdr

    [29] => 37||notes_a5_pionowa.cdr

    [30] => 38||notes_a6_pionowa.cdr

    [31] => 39||notes_a7_pionowa.cdr

    [32] => 3||wizytowka_90x50_pionowa.cdr

    [33] => 4||wizytowka_90x50_pozioma.cdr

    [34] => 5||wizytowka_euro85x50_pionowa.cdr

    [35] => 6||wizytowka_euro85x50_pozioma.cdr

    [36] => 7||wizytowka_euro85x55_pionowa.cdr

    [37] => 8||wizytowka_euro85x55_pozioma.cdr

    [38] => 9||wizytowka_90x50_pionowa.cdr

)

Próbuję ją posortować poprzez: sort($_SESSION['sesjadane']);

i pomimo tego otrzymuję taki wynik jak na górze... dlaczego mam 1,10,11,12,13,14 a nie 1,2,3,4,5,6...?

Jak posortować poprawnie taką tablicę?

Northwest


([alex]) #2

Dla tego że sortujesz wg ciągu znaków a nie liczby.

Jeżeli posortujesz napisy:

"b","c","d","ba","bb","bc","ca","cb","cc"

to dostaniesz:

"b","ba","bb","bc","c","ca","cb","cc","d"

i się nie dziwisz?

a teraz zastąp znaki: "a" na "0", "b" na "1", "c" na "2" a "d" na "3"

działać będzie tak samo.


(northwest) #3

dzięki za odpowiedź. A jak najlepiej zrobić to sortowania u mnie?


([alex]) #4

[0] => 00||plakat_b2.cdr

[1] => 10||wizytowka_90x50_pozioma.cdr

[10] => 01|makieta firmowka 80x55mm |firmowka_pozioma.cdr