Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> natarsort
MadMark
post 20.06.2011, 20:31:03
Post #1





Grupa: Zarejestrowani
Postów: 105
Pomógł: 3
Dołączył: 12.07.2010

Ostrzeżenie: (0%)
-----


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 ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
wookieb
post 20.06.2011, 20:35:49
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




natsort sad.gif ;( ;(


--------------------
Go to the top of the page
+Quote Post
MadMark
post 20.06.2011, 20:41:21
Post #3





Grupa: Zarejestrowani
Postów: 105
Pomógł: 3
Dołączył: 12.07.2010

Ostrzeżenie: (0%)
-----


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"
Go to the top of the page
+Quote Post
wookieb
post 20.06.2011, 20:45:00
Post #4





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




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);


--------------------
Go to the top of the page
+Quote Post
MadMark
post 20.06.2011, 20:47:33
Post #5





Grupa: Zarejestrowani
Postów: 105
Pomógł: 3
Dołączył: 12.07.2010

Ostrzeżenie: (0%)
-----


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...
Go to the top of the page
+Quote Post
wookieb
post 20.06.2011, 20:55:44
Post #6





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




No a gdzie jest 1 w przykładzie jaki podałem?


--------------------
Go to the top of the page
+Quote Post
MadMark
post 20.06.2011, 21:06:13
Post #7





Grupa: Zarejestrowani
Postów: 105
Pomógł: 3
Dołączył: 12.07.2010

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 13:23