Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] ksort()
Forum PHP.pl > Forum > Przedszkole
Skie
Definicja z Manuala PHP:
Sortuje tablicę według klucza zachowując skojarzenia kluczy z danymi. Jest to przydatne głównie w przypadku tablic asocjacyjnych.

Mam taką tablicę:
  1. <?php
  2.     [cos1] => 1,
  3.     [0] => 1,
  4.     [cos2] => 'tekst',
  5.     [1] => 'tekst',
  6.     [cos3] => 4,
  7.     [2] => 4,
  8.     [cos4] => 'lol',
  9.     [3] => 'lol'
  10. )
  11. ?>


Czyli korzystając z powyższej funkcji miałem nadzieję otrzymać coś takiego:
  1. <?php
  2.     [0] => 1,
  3.     [1] => 'tekst',
  4.     [2] => 4,
  5.     [3] => 'lol',
  6.     [cos1] => 1,
  7.     [cos2] => 'tekst',
  8.     [cos3] => 4,
  9.     [cos4] => 'lol'
  10. )
  11. ?>


...a zamiast tego mam coś takiego:

  1. <?php
  2.     [0] => 1,
  3.     [cos1] => 1,
  4.     [cos2] => 'tekst',
  5.     [cos3] => 4,
  6.     [cos4] => 'lol',
  7.     [1] => 'tekst',
  8.     [2] => 4,
  9.     [3] => 'lol'
  10. )
  11. ?>


Problem mam już rozwiązany i nie chcę wiedzieć jak to inaczej zrobić, tylko się zastanawiam czemu ta funkcja tak to dziwnie posortowała? Najpierw 0 potem stringi a potem znowu liczby - Byłbym wdzięczny gdyby mi to ktoś wytłumaczył smile.gif
nospor
manual nie gryzie
http://pl.php.net/manual/en/function.ksort.php#85046
Cytat
Be careful when using ksort for mixed type keys!!

......

The reason for that lays in the compare mechanism which would normally just typecast 'first' to an integer or 0 to a string when comparing it to each other. So you have to use SORT_STRING, otherwise you would lose information when 'first' is converted to int.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.