Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: natarsort
Forum PHP.pl > Forum > PHP
MadMark
Witam,

Potrzebna mi funkcja, która będzie sortować dokładnie tak jak arsort(), ale z uwzględnieniem różnic między np. 10 i 1...

Bo kiedy szukam czegoś z 1, to dostaje najpierw wynik z 10, a kolejnie z 1, bo 0 ma mniejszy numer ASCII itd...

Jak to napisać, żeby sortowało dokładnie jak arsort(), ale z uwzględnieniem 10 i 1 etc ?
wookieb
natsort sad.gif ;( ;(
MadMark
Cytat(wookieb @ 20.06.2011, 21:35:49 ) *
natsort sad.gif ;( ;(


Nie smile.gif

Z arsort dostaje:
1. zdanie 10
2. zdanie 1
3. zdanie 11

itd

Z natsort dostaje zupełnie coś innego ;S

a ja chce żeby było:

1. zdanie 1
2. zdanie 10
3. zdanie 11


Ofc pod warunkiem szukania samej "1"
wookieb
A ile idziesz o zakład, że natsort działa?
  1. $arr = array('10', '11', '1', '3', '100');
  2. natsort($arr);
  3. print_r($arr);
MadMark
Cytat(wookieb @ 20.06.2011, 21:45:00 ) *
A ile idziesz o zakład, że natsort działa?
  1. $arr = array('10', '11', '1', '3', '100');
  2. natsort($arr);
  3. print_r($arr);


Ja nie mówię, że nie działa... Ja chcę, żeby TO: http://forum.php.pl/index.php?showtopic=17...rt=#entry874363 mi sortowało :S
Tzn. tam jest sortowane wg występowania słów kluczowych... A akurat taki pech, że 1 i 10 wystpują dokładnie tyle samo razy... I chce, żeby 1 było przed 10, nie jak teraz 10 przed 1...
wookieb
No a gdzie jest 1 w przykładzie jaki podałem?
MadMark
Cytat(wookieb @ 20.06.2011, 21:55:44 ) *
No a gdzie jest 1 w przykładzie jaki podałem?


Ale ty nie rozumiesz... Mam do posortowania takie coś:

  1. [0] => 8 [1] => 6 [2] => 6 [3] => 6
  2. [4] => 3 [5] => 1 [6] => 1 [7] => 1
  3. [8] => 1 [9] => 1 [10] => 1 [11] => 1
  4. [12] => 1 [13] => 3 [14] => 5 [15] => 3
  5. [16] => 1 [17] => 1 [18] => 1 [19] => 1
  6. [20] => 1 [21] => 1 [22] => 1 [23] => 1
  7. [24] => 3 [25] => 1 [26] => 1 [27] => 1
  8. [28] => 1 [29] => 1 [30] => 1 [31] => 1
  9. [32] => 1 [33] => 3 [34] => 4 [35] => 2
  10. [36] => 2 [37] => 2 [38] => 3 [39] => 1
  11. [40] => 1 [41] => 1 [42] => 3 [43] => 4
  12. [44] => 2 [45] => 2 [46] => 9 [47] => 7
  13. [48] => 0 )


i to się posortuje jakkolwiek bym chciał...
I sobie tak posortowałem wg ilości trawień w każdym z id w [ ].
I dalej do każdego id posortowanego przypisywana jest nazwa z właśnie tymi feralnymi jedynkami i dziesiątkami.
Mam już posortowane wg trafień, ale jak to posortować jeszcze wg nazwy z uwzględnieniem tych 10 i 1, tak żeby nie rozwalić wcześniejszego sortowania? Bąbelkowo? ohmy.gif
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.