![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 136 Pomógł: 2 Dołączył: 13.05.2003 Skąd: Przemyśl Ostrzeżenie: (0%) ![]() ![]() |
Jak zrobić sortowanie rosnąco lub malejąco w kolumnie gdzie znajduje się zmienna $line_dane[1] ?
[php:1:13a3dad197]<?php $dane=file("zw.txt"); for($i=0;$i<count($dane);$i++) { $line_dane=explode("|^^^|", $dane[$i]); echo "<tr CLASS=dane> <td>$line_dane[0]</td> <td><b>$line_dane[1]</b></td> </td> </tr>"; } ?>[/php:1:13a3dad197] |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 467 Pomógł: 13 Dołączył: 22.02.2003 Ostrzeżenie: (0%) ![]() ![]() |
może usort?
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 136 Pomógł: 2 Dołączył: 13.05.2003 Skąd: Przemyśl Ostrzeżenie: (0%) ![]() ![]() |
Nie znam się za bardzo, ale stworzyłem takie coś i nie chce działać
[php:1:c40226a516]<?php function cmp ($a, $ ![]() if ($a == $ ![]() return ($a > $ ![]() } $dane=file("zw.txt"); for($i=0;$i<count($dane);$i++) { $line_dane=explode("|^^^|", $dane[$i]); $a = array ($line_dane[1]); usort ($a, "cmp"); while (list ($key, $value) = each ($a)) { echo "<tr CLASS=dane> <td>$line_dane[0]</td> <td><b>$value</b></td> </td> </tr>"; } } ?>[/php:1:c40226a516] |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 211 Pomógł: 0 Dołączył: 7.06.2002 Ostrzeżenie: (0%) ![]() ![]() |
kod napisal steru (tak mi sie wydaje ) TAK steru sprawdzilem
![]() [php:1:935862db75]<?php function sortuj($in,$sep,$nr) { for($i=0;$i<count($in);$i++) { $ex=explode($sep,$in[$i]); $tmp[]=$ex[$nr]; } array_multisort($tmp,SORT_NUMERIC,SORT_DESC,$in); // desc lub asc unset($tmp); return $in; } $dane=file('jakis_tam_plik.txt'); $dane=sortuj($dane,';',2); // sortuje wedlug 3 kolumny a separatorem jest ; ?>[/php:1:935862db75] no a potem tylko wypisac tablice $dane |
|
|
![]()
Post
#5
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 467 Pomógł: 13 Dołączył: 22.02.2003 Ostrzeżenie: (0%) ![]() ![]() |
ja bym to zrobił tak[php:1:20dc64c87b]<?php
function cmp($_a, $_b){ $a=explode('|^^^|', $_a); $b=explode('|^^^|', $_b); if($a[1] == $b[1]){ return 0; } return ($a[1]>$b[1])?-1:1; } $dane=file("zw.txt"); usort($dane, "cmp"); for($i=0;$i<count($dane);$i++){ $linia=explode('|^^^|', $dane[$i]); echo "<tr CLASS=dane> <td>{$lina[0]}</td> <td><b>{$linia[1]}</b></td> </td> </tr>"; } } ?>[/php:1:20dc64c87b] |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 136 Pomógł: 2 Dołączył: 13.05.2003 Skąd: Przemyśl Ostrzeżenie: (0%) ![]() ![]() |
Dobrze sortuje, tylko że nie chce wyświetlić pierwszej kolumny
a i chyba jest tam na końcu o jedną klamre za dużo?[php:1:c5074c3ae0]<td>{$lina[0]}</td>[/php:1:c5074c3ae0] |
|
|
![]()
Post
#7
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 467 Pomógł: 13 Dołączył: 22.02.2003 Ostrzeżenie: (0%) ![]() ![]() |
a popatrz na nazwy zmiennych. Ja błąd znalazłem. Teraz Ty spróbuj. Moja podpowiedź. To nie wina klamr, tylko nazw.
|
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 136 Pomógł: 2 Dołączył: 13.05.2003 Skąd: Przemyśl Ostrzeżenie: (0%) ![]() ![]() |
już znalazłem
![]() Dzieki za pomoc! |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 136 Pomógł: 2 Dołączył: 13.05.2003 Skąd: Przemyśl Ostrzeżenie: (0%) ![]() ![]() |
a jak są do sortowania liczby dwucyfrowe i więcej, to wtedy będzie sortować według pierwszej jednostki tzn.
8 40 4 3 2 10 1 trzeba użyć innej funkcji? aby było: 40 10 8 4 3 2 1 |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarząd Postów: 3 503 Pomógł: 28 Dołączył: 17.10.2002 Skąd: Wrocław ![]() |
-------------------- |
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 136 Pomógł: 2 Dołączył: 13.05.2003 Skąd: Przemyśl Ostrzeżenie: (0%) ![]() ![]() |
czyli odnośnie wcześniejszych postów zamieniam na [php:1:374f429f7c]
<?php usort($dane, "strnatcmp"); ?>[/php:1:374f429f7c] sortuje dobrze tylko że pierwszą kolumnę ![]() a co zrobić żeby sortowało według drugiej, i w kolejności od największej do najmniejszej, co jeszcze trzeba zmienić? |
|
|
![]()
Post
#12
|
|
![]() Grupa: Zarejestrowani Postów: 136 Pomógł: 2 Dołączył: 13.05.2003 Skąd: Przemyśl Ostrzeżenie: (0%) ![]() ![]() |
ok, z jednym sobie poradziłem z sortowaniem od najwiekszej do najmniejszej [php:1:8db83c94c1]<?php
$tablica1 = array_reverse($tablica); ?>[/php:1:8db83c94c1] tylko nadal nie wiem czemu sortuje wg. pierwszej kolumny? |
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 10:20 |