• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Sortowanie pliku tekstowego.

Object Storage Arubacloud
0 głosów
371 wizyt
pytanie zadane 9 stycznia 2023 w PHP przez Jacek Drożdżeński Nowicjusz (210 p.)
Byłbym wdzięczny za odpowiedź na pytanie zawarte w następnym zdaniu, dotyczące sortowania.
Czy jest w php funkcja sortowania, czy trzeba ją sobie napisać samemu? Oczywiście nie jakaś tam, tylko taka, której działanie spełnia następujące warunki:
    Do sortowania jest plik tekstowy zawierający oddzielne wiersze. Można je nazwać rekordami w mowie bazodanowej. W poszczególnych wierszach mogą  się znajdować dowolne znaki, przede wszystkim litery małe i duże z kilku alfabetów (polski, rosyjski, niemiecki, kilka języków skandynawskich, turecki) i może jeszcze inne. W poszczególnych wierszach mogą się znajdować tagi html (najczęściej <,>) oraz większość znaków interpunkcyjnych. Dodatkowo dodam, że poszczególne wiersze mogą zawierać od kilku do tysiąca i więcej znaków. I teraz rzecz kluczowa, w sortowaniu trzeba pomijać wszystko to, co znajduje się między znacznikami html i między nawiasami okrągłymi. I to wszystko. Można pominąć temat szybkości i wydajności sortowania.  
optyma.

2 odpowiedzi

0 głosów
odpowiedź 9 stycznia 2023 przez AnimaVillis Stary wyjadacz (11,510 p.)
Trzeba samodzielne napisać sortowanie przy użyciu odpowiednich funkcji, które udostępnia Ci php :)
komentarz 9 stycznia 2023 przez Jacek Drożdżeński Nowicjusz (210 p.)
Może ja powtórzę: pytałem, czy jest w php funkcja ... zwłaszcza odpowiednia, bo samo sortowanie to chyba oczywiste, że sobie napiszę.
1
komentarz 10 stycznia 2023 przez AnimaVillis Stary wyjadacz (11,510 p.)
A ja Ci odpowiem żebyś ponownie przeczytał jak sformułowałeś pytanie i jaka jest moja odpowiedź.
komentarz 10 stycznia 2023 przez VBService Ekspert (253,300 p.)
edycja 10 stycznia 2023 przez VBService

@Jacek Drożdżeński, IMHO @AnimaVillis; ma rację, że jego odpowiedź jest prawidłowa

Czy jest w php funkcja sortowania, czy trzeba ją sobie napisać samemu?

 

dla opisanego przez Ciebie sposobu sortowania (warunki do spełnienia przy sortowaniu), nie ma wbudowanej w php więc trzeba takową napisać. 

Do sortowania jest plik tekstowy zawierający oddzielne wiersze. Można je nazwać rekordami w mowie bazodanowej. W poszczególnych wierszach mogą  się znajdować dowolne znaki, przede wszystkim litery małe i duże z kilku alfabetów (polski, rosyjski, niemiecki, kilka języków skandynawskich, turecki) i może jeszcze inne. W poszczególnych wierszach mogą się znajdować tagi html (najczęściej <,>) oraz większość znaków interpunkcyjnych. Dodatkowo dodam, że poszczególne wiersze mogą zawierać od kilku do tysiąca i więcej znaków. I teraz rzecz kluczowa, w sortowaniu trzeba pomijać wszystko to, co znajduje się między znacznikami html i między nawiasami okrągłymi.

 dopiero w komentarzu powyżej, doprecyzowałeś pytanie,

... bo samo sortowanie ... sobie napiszę

że chodzi Tobie o funkcję sortującą, gdzie możesz ją sam zdefiniować według Twoich warunków, które podałeś w pytaniu.

komentarz 10 stycznia 2023 przez Jacek Drożdżeński Nowicjusz (210 p.)
"..dla opisanego przez Ciebie sposobu sortowania (warunki do spełnienia przy sortowaniu), nie ma wbudowanej w php więc trzeba takową napisać."

I taka odpowiedź by mi wystarczyła na początku.

Funkcja usort() przy pobieżnym sprawdzeniu pomija zawartość w nawiasach <>, nie pomija zawartości w nawiasach () i protestuje przy nawiasach []. Podanych przez kolegę funkcji uasort() i uksor() na razie nie sprawdzałem. Nie jestem pewien, czy sprawę ułatwi wczytanie wszystkich wierszy do tablicy, byłaby to tablica jednokolumnowa. Clou całego zagadnienia, to napisanie własnej funkcji ze swoimi warunkami i dopiero wtedy wykorzystanie jakichś funkcji wbudowanych w php. Dzięki za odzew.
0 głosów
odpowiedź 9 stycznia 2023 przez VBService Ekspert (253,300 p.)
edycja 10 stycznia 2023 przez VBService

Może ja powtórzę: pytałem, czy jest w php funkcja ... 

sprawdź np. usort

 

... samo sortowanie to chyba oczywiste, że sobie napiszę

Sorting Arrays PHP

Function name Sorts by Maintains key association Order of sort Related functions
uasort() value yes user defined uksort()
uksort() key yes user defined uasort()
usort() value no user defined uasort()

 

 

Do sortowania jest plik tekstowy zawierający oddzielne wiersze. Można je nazwać rekordami w mowie bazodanowej

BTW, proponuje wczytać plik do tablicy, to powinno ułatwić napisanie mechanizmu sortowania, jak potraktujesz wiersze z pliku jako kolejne rekordy w tablicy. możesz użyć np. file()

$records = file('data.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);

foreach ($records as &$record) {
    ...
}

 

Podobne pytania

0 głosów
1 odpowiedź 3,193 wizyt
pytanie zadane 14 maja 2016 w C i C++ przez Evelek Nałogowiec (28,960 p.)
0 głosów
1 odpowiedź 935 wizyt
pytanie zadane 28 października 2017 w PHP przez smokolisz Mądrala (6,340 p.)
0 głosów
0 odpowiedzi 180 wizyt

92,568 zapytań

141,420 odpowiedzi

319,622 komentarzy

61,954 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...