![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 788 Pomógł: 1 Dołączył: 17.09.2004 Ostrzeżenie: (10%) ![]() ![]() |
Witam serdecznie,
Mam taką tablicę: Array ( [0] => 9.5|16|NAZWA|2219688|2012-03-01|1000|2005||LPG|6|2|3|4|6|40.00|10%|30.00|30.00|tak|30.00|1|0|0|0|0|10|0||0| [1] => 8.15|26|NAZWA2|2219625|2012-03-01|1000|2005||LPG|6|1.8|2.7|3.6|5.4|36.00|10%|10.00|30.00|10.00|35.00|1|0|0|0|7|10|0||0| [2] => 7.5|14|NAZWA3|2219663|2012-03-01|1000|2005||LPG|6|2|3|4|6|40.00|10%|30.00|30.00|tak|tak|1|0|0|0|0|10|0||0| [3] => 7.15|27|NAZWA4|2219644|2012-03-01|1000|2005||LPG|6|2.2|3.3|4.4|6.6|40.00|10%|12.00|20.00|10.00|36.00|2|0|0|0|8|10|0||0| [4] => 6.95|10|NAZWA5 |226442222|2012-03-01|1000|2005|0|LPG|6|1.4|2.1|2.8|4.2|24.00|10%|30.00|30.00|tak|nie|1|0|0|0|3|10|-1||0| [5] => 6.7|23|NAZWA6|226444444|2012-03-01|1000|2005||LPG|6|2.4|3.6|4.8|7.2|40.00|10%|10.00|20.00|tak|25.00|2|0|-1|0|9|10|0||0| [6] => 6.5|24|NAZWA7|229622, 2219661|2012-03-01|1000|2005||LPG|6|2|3|4|6|40.00|10%|15.00|20.00|tak|25.00|1|0|0|0|5|10|0||0| [7] => 6.2|21|NAZWA8|2219191|0000-00-00|1000|2005||LPG|6|2.4|3.6|4.8|7.2|40.00|10.00%|tak|tak|tak|tak|2|0|-3|0|8|10|0||0| [8] => 6.2|20|NAZWA9|226777777|2012-03-01|1000|2005||LPG|6|2.4|3.6|4.8|7.2|40.00|10.00%|10.00|20.00|tak|30.00|2|0|0|0|0|10|0||0| [9] => 5.8|13|NAZWA10 |2219662|2012-03-01|1000|2005||LPG|6|1.6|2.4|3.2|4.8|32.00|10%|10.00|20.00|tak|20.00|1|0|0|0|4|10|0||0| [10] => 4.7|18|NAZWA11 |229623, 2219628|2012-03-01|1000|2005||LPG|6|2.4|3.6|4.8|7.2|40.00|10%|15.00|20.00|tak|10.00|2|0|0|-3|0|10|0||0| [11] => 4.65|15|NAZWA12 |2219668|2012-03-01|1000|2005||LPG|6|1.8|2.7|3.6|5.4|36.00|10%|tak|20.00|tak|tak|2|0|0|0|5|10|0||0| [12] => 4.525|6|NAZWA13 |221005353|2012-03-01|1000|2005|0|LPG|6|1.3|1.95|2.6|3.9|24.00|10%|10.00|15.00|tak|tak|1|0|0|0|1|10|0||0| [13] => 3.8|17|NAZWA14|26464646|2012-03-01|1000|2005||LPG|6|1.6|2.4|3.2|4.8|32.00|10%|tak|tak|tak|tak|1|0|0|0|6|10|0||0| [14] => 3.85|9|NAZWA15|2219626|2012-03-01|1000|2005|0|LPG|6|2.2|3.3|4.4|6.6|40.00|10%|15.00|20.00|tak|nie|1|0|0|0|0|10|0||0| [15] => 3.58|22|NAZWA16|2219669|2012-03-01|1000|2005||LPG|6|1.9|2.8|3.8|5.7|38.00|10%|tak|tak|tak|tak|1|0|0|1|0|10|0||0| [16] => 3.48|25|NAZWA17|2219664|2012-03-01|1000|2005||LPG|6|2.2|3|4|6|40.00|10%|tak|tak|tak|tak|1|0|0|0|6|10|0||0| [17] => 2.65|8|NAZWA18|2219459|2012-03-01|1000|2005|0|LPG|6|1.8|2.7|3.6|5.4|36.00|10%|tak|tak|tak|nie|1|0|0|0|2|10|0||0| [18] => 10.7|19|NAZWA19|2219624|2012-03-01|1000|2005||LPG|6|2.4|3.6|4.8|7.2|40.00|10%|20.00|25.00|tak|30.00|1|0|-3|0|7|10|0||0| [19] => 1.875|7|NAZWA20|2219667|2012-03-01|1000|2005|0|LPG|6|1.5|2.25|3|4.5|30.00|10%|tak|tak|tak|nie|1|2|1|0|0|10|0||0| [20] => 1.7|11|NAZWA21|228111111|2012-03-01|1000|2005|0|LPG|6|2.4|3.6|4.8|7.2|40.00|10%|15.00|20.00|nie|nie|1|0|1|0|0|10|0||0| [21] => -122|28|NAZWA22|tel|2000-03-01|1000|2005|postoje|LPG|111|222|333|444|555|postoj|rabat|77|88|99|tak|2|-14|-6|4|9|10|0|www|1| ) Muszę przesortować te wartości po 5,4,3 i 2 ostatnich polach (czyli od końca odliczając po "|"). Wiecie może jak to zrobić? Próbuję z tym już od 2 dni, ale już nie mam pomysłów ![]() |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 763 Pomógł: 117 Dołączył: 15.03.2010 Skąd: void Ostrzeżenie: (0%) ![]() ![]() |
Rozdziel sobie każdy wers, skorzystaj z explode, posortuj?
Ja w tym nie widzę nic trudnego ale nie wiem na czym stoisz i chyba nie ma sensu żebym dyktował Ci to wszytko od 0. Pokaż co masz, jaką masz koncepcję? ![]() -------------------- Pomogłem? Kliknij `Pomógł`. To nic nie kosztuje, a mnie usatysfakcjonuje! ;)
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 2 592 Pomógł: 445 Dołączył: 12.03.2007 Ostrzeżenie: (0%) ![]() ![]() |
Rozbij każdy wiersz na dodatkowe tablice (zwykłe explode), wtedy będziesz mógł sortować po wybranej kolumnie tych tablic.
Kod Array
( [0] => Array ( [0] => 9.5 [1] => 16 [2] => NAZWA itd.. -------------------- |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 788 Pomógł: 1 Dołączył: 17.09.2004 Ostrzeżenie: (10%) ![]() ![]() |
noo tym explode to później rozbijam przy insertach/selectach itp
![]() tylko jak to wykorzystać przy sortowaniu? rozbicie tego nic nie da, bo to string - a php nie sortuje dobrze po stringach z tego co widzę ![]() |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 292 Pomógł: 89 Dołączył: 27.12.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Możesz skorzystać z usort i w funkcji sortującej użyć właśnie explode. Coś w ten deseń:
Ta funkcja będzie traktować piąty element od końca jako nadrzędny, jeśli te elementy będą równe to porówna czwarty element od końca, potem trzeci itd. Coś w stylu ORDER BY w MySQL. -------------------- Zend Certified Engineer | Microsoft Certified Professional: Programming in HTML5 with JavaScript & CSS3 | Blog
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 142 Pomógł: 32 Dołączył: 21.08.2008 Skąd: Toruń Ostrzeżenie: (0%) ![]() ![]() |
Edit: Ktoś mnie ubiegł ![]() Ten post edytował jasin 28.03.2012, 21:06:20 -------------------- ![]() |
|
|
-north- |
![]()
Post
#7
|
Goście ![]() |
niestety nie pomogło:(
znalazłem taki kod:
ten kod z multisort działa extra dla nazwy... tylko w przypadku gdy mam: $t1[$key] = $row[11]; array_multisort($t1, SORT_ASC, $tablica_sortowania); to sortuje jakoś dziwnie: 1.30 , 2.40, 1.60, 1.80, 2.40, 2.00 Wiecie może dlaczego tak jest? dlaczego nie sortuje poprawnie? |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 21:54 |