Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: funkcja sort()
Forum PHP.pl > Forum > Przedszkole
ravo
Muszę w swoim kodzie uporządkować tablicę funkcją sort() wartościami są liczby dlatego muszę funkcji przypisać parametr NUMERIC (tyle wiem) nie wiem jak to zrobić!

Próbowałem już różnych standardowych opcji przypisywania opcjonalnych parametrów do funkcji w sort() to powoduje najróżniejsze błędy np:

sort($zmienna, 'numeric');
powoduje błąd:
Warning: sort() expects parameter 2 to be long, string given in c:\usr\krasnal\www\zseg\radio.php on line 62

lub

sort($zmienna, 'sort_numeric');
powoduje błąd:
Warning: sort() expects parameter 2 to be long, string given in c:\usr\krasnal\www\zseg\radio.php on line 62

lub

sort_numeric($zmienna);
powoduje błąd:
Fatal error: Call to undefined function sort_numeric() in c:\usr\krasnal\www\zseg\radio.php on line 62

Jak przypisać ten parametr do funkcji sort()?
czachor
Kod
bool sort ( array &tablica [, int flagi] )

więc:
  1. <?php
  2. sort($zmienna, SORT_NUMERIC);
  3. ?>
dr_bonzo
To maja byc STALE!
np.
SORT_NUMERIC
bez zadnych apostrofow/cydzusl.
-------------------------
to przez powolna klawiature tongue.gif
ravo
Wielkie dzięki ale!!! błąd mam znowu taki:

Warning: Wrong parameter count for usort() in c:\usr\krasnal\www\zseg\radio.php on line 62

to oznacza zły parametr chyba!? Moja funkcja wygląda następująco:

usort($linia, 'porownaj', SORT_NUMERIC);

dlatego usort() bo sortuję tablicę 2 wymiarową i muszę do tego użyć funkcji (u mnie) "porownaj".

Czy parametr SORT_NUMERIC nie może być stosowany w funkcji usort() questionmark.gif Jeśli tak to jak rozwiązać ten problem!
czachor
usort" title="Zobacz w manualu PHP" target="_manual nie posiada trzeciego parametru. Jeżeli Ci to nie odpowiada, przeszukaj komentarze w tej funkcji i sort" title="Zobacz w manualu PHP" target="_manual.
ravo
Mam tablicę X wierszy na 3 kolumny i w trzeciej kolumnie są wartości liczbowe stosuję funkcję:

function porownaj($x, $y)
{
if ( $x[2] == $y[2] )
return 0;
else if ( $x[2] < $y[2] )
return 1;
else
return -1;
}

usort($linia, 'porownaj');

która układa te wartości w 3 kolunmnie idealnie ale jeżeli mają tyle samo znaków, bo np: 11 jest mniejsze od 2, a nie chcę stosować formatu dwucyfrowego 02 bo wtedy by grało.

Nie mam głowy aby to wykombinować w inny sposób jak w usort() parametr NUMERIC być nie może sad.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.