Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Jak działa usort()?
Forum PHP.pl > Forum > PHP
phoenix84
[[NIEAKTUALNE]]

Witam,

Mam problem taki, ze w manualu albo jest niedokladnie, lbo tego nie rozumiem... smile.gif

a ile idee callbackow znam z js... to juz wykorzytsanie tego tu w praktyce cos mi nie idzie...

jest sobie tablica gdzie jest n elementow (klucze od 0 do n)... i kazdy z tych elementow zawiera podtablice majaca 3 elementy (klucze: x, y , d)

(kazdy element tablicy to pole na mapie heksagonalnej, i w podtablicy jest jego x, y i odleglosc od srodka) i teraz chce by mi ja posortowalo wedlug odleglosci od srodka...

zastosowalem to:

function cmp($a, $b)
{
return strcmp($a["d"], $b["d"]);
}

usort($pola, "cmp");

ale efekt nie jest taki jak oczekiwalem... malo tego, wartosci ['d'] zostaly pozmieniane...

czy moze mi ktos wyjasnic jak ta funkcja dziala? bo widocznie zle ja rozumiem... co to jest $a i $b... bo zalozylem, ze to kolejne (sasiednie) elementy tablicy do porownania.... stad porownuje pozniej je wzgledem d... i liczylem an to, ze funckja je ze soba zamieni miejscami... czy jak to tam dziala smile.gif

bede wdzieczny za sugestie,

jednak wszystko dobrze rozumialem, tylko blad w kodzie byl... sorki smile.gif

pozdrawiam,

k.
thek
A example1 i 2 w usort nie jest wystarczająco jasny? Chyba aż nadto wink.gif Tyle, że Ty wzorując się na example2 kompletnie zlałeś sprawę, że "d" u Ciebie to integer, a Ty używasz funkcji do porównywania stringów. Pomyślałeś o tym?
plej
Poczytaj sobie to: http://www.phpkode.com/tips/item/php-functions/
jak nie umiesz zbytnio angielskiego to na google chrome włącz i ustaw tłumaczenie stronki:)
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.