![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 71 Pomógł: 1 Dołączył: 8.05.2010 Ostrzeżenie: (20%) ![]() ![]() |
Wiatm mam problem ze zrozumieniem dzialania funkcji usort na tablicach wielowymiarowych.
Nie potrafie zrozumiec zasady wprowadzania zmiennych używanych w funckji ktorą wywoluje usort.
na powyższym przykładzie mamy w cmp() uzyte zmienne $a oraz $b.Gdzie je inicjujemy ? Po wielu probach zrozumienia funkcji doszedłem do tego że te zmienne pobierane są z tablicy którą chcemy posortować.Proszę o pomoc w zrozumieniu zasady inicjacji tych zmiennych. Ten post edytował andrzej7322 29.01.2011, 15:42:25 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 69 Pomógł: 0 Dołączył: 22.01.2011 Skąd: Murowana Goślina Ostrzeżenie: (0%) ![]() ![]() |
Z tego co wiem to usort chyba nie istnije. Są sort, ksort i i asort, ale nie jestem pewien.
sort sortuje rosnąco alfabetycznie lub asort sortuje wg elementow wartosci np. ksort sortuje alfabetycznie: edit: jdnak istnieje funkcja usort zara ci powiem bo juz nie pamietam jak to bylo: a więc:
Powiem ci szczerze, ze anomalią jest aby ktoś na świecie zrozumiał tą funkcję tzn. mało jets programistów ją rozumiejących, dlatego posługuj się gotowymi przykładami. Ten post edytował waqmaz 29.01.2011, 16:20:39 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 71 Pomógł: 1 Dołączył: 8.05.2010 Ostrzeżenie: (20%) ![]() ![]() |
Pomoze ktoś bo powyższy post nie pomógł mi wogóle.
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 121 Pomógł: 26 Dołączył: 2.07.2007 Ostrzeżenie: (0%) ![]() ![]() |
na powyższym przykładzie mamy w cmp() uzyte zmienne $a oraz $b.Gdzie je inicjujemy ? Nigdzie ich nie inicjujesz. Są one przekazywane automatycznie do funkcji zwrotnej (tzw. callback) w kodzie funkcji usort. Hmm, spróbuje to pokazać na przykładzie przykładowej funkcji która wykorzystuje callback:
Najpierw definiuję funkcję, której użyję jako callbacka, a później funkcję, która z niego skorzysta. Do funkcji myFunctionWithCallback przekazuję nazwę funkcji którą chcę odpalić. Jak widzisz, w ramach funkcji myFunctionWithCallback to ja decyduję w jakiej kolejności przekazać parametry - mogą one pochodzić ze zmiennych jak w tym wypadku (first, second), albo być przekazane normalnie:
O to chodzi, że callbacka, tak jak normalnej funkcji (którą to callback jest!) nie interesuje skąd się wzięły parametry - to Twoim zdaniem jest je do niej przekazać. W przypadku usort zrobili to za Ciebie twórcy PHP. Callbacki są bardzo często spotykane w języku JavaScript, tak więc tam możesz szukać zasady działania. BTW. Od PHP 5.3 można przekazywać funkcje jako parametry, dzięki wprowadzeniu funkcji anonimowych - wtedy kod usort który podałeś mógłby wyglądać tak:
Ten post edytował singles 29.01.2011, 19:02:44 -------------------- Works for me => u mnie działa - blog o (o)programowaniu i nie tylko
meet.php - darmowe meetupy związane z PHP |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 01:51 |