![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 21 Pomógł: 0 Dołączył: 22.05.2003 Skąd: Kłodzko / Wrocław / Droszków ... Ostrzeżenie: (0%) ![]() ![]() |
Mam taką ciekawostkę do posortowania.
Tablica z elementami (powiedzmy) Kod $t=array("30***Ala ma kota", "7***kot na imię ma As", "45***coś tam jeszcze");
po rozbiciu $t_ex=explode("***", $t); za cholerę nie mogę tego posortować wg Kod $t_ex[0];
aby osiągnąć porządek: 7 (kot na imię ma As) 30 (Ala ma kota) 45 (coś tam jeszcze) Macie jakiś pomysł na to? A tak poza tym. To jak stworzyć tablicę wielowymiarową z 2 tablic? -------------------- Choćbym szedł ciemną doliną, zła się nie ulęknę, albowiem mam gdzieś na twardzielu manuala....
|
|
|
![]()
Post
#2
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 467 Pomógł: 13 Dołączył: 22.02.2003 Ostrzeżenie: (0%) ![]() ![]() |
a może usort??
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 21 Pomógł: 0 Dołączył: 22.05.2003 Skąd: Kłodzko / Wrocław / Droszków ... Ostrzeżenie: (0%) ![]() ![]() |
Cytat a może usort??
OK! Dzięki, przeoczyłem ten wątek. Natomiast w opcji B czyli cały***wpis powyżej przed Kod explode("***", $t); nie za bardzo da się posortować w ten sposób. No chyba, że to moja czaszka już dymi.
Właśnie się zastanawiam jakby to zamienić, takie elementy tablicy "punkty***temat_glosowania" na "punkty" => "temat_glosowania" i stworzyć nową tablicę z kluczami i wartościami. Pozdrawiam [:::K:::] ![]() -------------------- Choćbym szedł ciemną doliną, zła się nie ulęknę, albowiem mam gdzieś na twardzielu manuala....
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 28.03.2003 Ostrzeżenie: (0%) ![]() ![]() |
Poczytaj o strtok()
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 151 Pomógł: 0 Dołączył: 4.03.2003 Ostrzeżenie: (0%) ![]() ![]() |
Cytat Tablica z elementami (powiedzmy)
Kod $t=array("30***Ala ma kota", "7***kot na imię ma As", "45***coś tam jeszcze");
po rozbiciu $t_ex=explode("***", $t); Przeciez explode nie rozbija tablic tylko stringi zwracajac jako wynik tablice ! Cytat array explode ( string separator, string string [, int limit])
Na moj gust musisz poleciec np foreach'em po tablicy i kazdy z jej elementow potraktowac explode'm. Pozdrawiam :) -------------------- Wszystko ... co na świecie interesujące, bierze się z czyichś dziwacznych myśli [David Lynch]
Andrzej Lepper to Kretyn< |
|
|
![]()
Post
#6
|
|
![]() Administrator planeta/IRC Grupa: Przyjaciele php.pl Postów: 385 Pomógł: 0 Dołączył: 19.04.2003 Skąd: Zabrze Ostrzeżenie: (0%) ![]() ![]() |
Jeśli dobrze rozumiem to chcesz mieć możliwość posortowania danych z pliku wg dowolnego elementu. Ja w mojej klasie do obsługi bazy danych opartej na txt stosuje taki kod:
[php:1:3daf0aab90]<?php function sort($array, $n = 0, $flag1 = SORT_ASC, $flag2 = SORT_REGULAR){ while($f = $this->explode($array)){ $t[] = $f[$n]; } array_multisort($t, $flag1, $flag2, $array); return $array; } ?>[/php:1:3daf0aab90] Tylko trzba troche pętle poprawić, np na foreacha, i potem w środku potraktować $array explodem. |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 22.05.2003 Ostrzeżenie: (0%) ![]() ![]() |
Proponuje tym przypadku zastosowac tablice asocjacyjna.
[php:1:505b7901a9]<?php $t = array( "Ala ma kota"=>30, "kot na imie ma As"=>7, "cos tam jeszcze"=>45 ); echo "Wyswietlanie zawartosci tabeli:<br><br>"; while ( $element = each( $t ) ) //zwraca poszczegolne elementy tab i przesuwa wskaznik na nastepny element { echo $element["value"]; echo " - "; echo $element["key"]; echo "<br>"; } echo"<br>"; echo "Sortowanie wedlug wartosci:<br>"; asort($t); while( list ($key,$value) = each($t)) { echo "$value - $key<br>"; } echo"<br>"; echo "Sortowanie alfabetyczne wedlug kluczy:<br>"; ksort($t); while( list ($value, $key) = each($t)) { echo "$value - $key<br>"; } ?>[/php:1:505b7901a9] -------------------- Nigdy nie bierz udzialu w cudzej krucjacie.
|
|
|
![]()
Post
#8
|
|
![]() Administrator planeta/IRC Grupa: Przyjaciele php.pl Postów: 385 Pomógł: 0 Dołączył: 19.04.2003 Skąd: Zabrze Ostrzeżenie: (0%) ![]() ![]() |
Ale tutaj chodziło o pliki tekstowe, i tablice utworzoną za pomocą funkcji file, a do takiej tablicy to sortowanie sie nie nadaje...
|
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 21 Pomógł: 0 Dołączył: 22.05.2003 Skąd: Kłodzko / Wrocław / Droszków ... Ostrzeżenie: (0%) ![]() ![]() |
Cytat Jeśli dobrze rozumiem to chcesz mieć możliwość posortowania danych z pliku wg dowolnego elementu. Ja w mojej klasie do obsługi bazy danych opartej na txt stosuje taki kod:
[php:1:19b24d972d]<?php function sort($array, $n = 0, $flag1 = SORT_ASC, $flag2 = SORT_REGULAR){ while($f = $this->explode($array)){ $t[] = $f[$n]; } array_multisort($t, $flag1, $flag2, $array); return $array; } ?>[/php:1:19b24d972d] Tylko trzba troche pętle poprawić, np na foreacha, i potem w środku potraktować $array explodem. PORADZIŁEM SOBIE Z TYM DOKŁADNIE W TEN SPOSÓB. WYKORZYSTAŁEM array_multisort() Dzięki za zainteresowanie i poświęcony czas. :wink: -------------------- Choćbym szedł ciemną doliną, zła się nie ulęknę, albowiem mam gdzieś na twardzielu manuala....
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 13.06.2025 - 09:42 |