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

Sortowanie pliku tekstowego.

VPS Starter Arubacloud
0 głosów
352 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,190 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,190 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 (251,170 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 (251,170 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,181 wizyt
pytanie zadane 14 maja 2016 w C i C++ przez Evelek Nałogowiec (28,960 p.)
0 głosów
1 odpowiedź 884 wizyt
pytanie zadane 28 października 2017 w PHP przez smokolisz Mądrala (6,340 p.)
0 głosów
0 odpowiedzi 175 wizyt

92,451 zapytań

141,261 odpowiedzi

319,073 komentarzy

61,853 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

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 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!

...