[PHP] Sort

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Elect
  • Registratie: Mei 2000
  • Niet online
Ik zit met een probleem dat ik niet direct weet op te lossen zonder het script voor een groot gedeelte te herschrijven. Ik hoop dat jullie even kunnen helpen.

Ik heb een heel simpel forum wat gebuikt maakt van tekstbestanden. Dit werkt naar behoren en is maar voor een kleine groep mensen.
Alleen ik heb de datum omgezet van Amerikaanse tijd (yyyy-mm-dd) naar Nederlands (d-m-yy).

Het nadeel is nu dat de PHP functie 'Rsort' niet meer naar behoren werkt. De entry in de database is nu geworden (zoals hij ook echt in het tekstbestand staat):

31-05-04 18:37$30$3$Dynamo$6$1$
01-06-04 11:54$39$2$Mannen vs Vrouwen$4$1$

Terwijl deze vroeger eerst logisch op jaar en maand soorteerde zou hij dat nu eigenlijk nogsteeds moeten doen, helaas is het logisch dat deze dat niet doet :(
de Rsort naar Sort omzetten werkt wel, maar dan kloppen de tijden van de topics niet meer, ook niet echt direct wat ik als idee heb.

De code die nu gebruikt wordt om het bestand uit te lezen:

$fp = file(DB_DIR.DB_TOPICS);
rsort($fp);

Iemand enig idee hoe ik deze in de juiste volgorde zou kunnen krijgen?

HelmChat.eu - Free Motorcycle Group Chats


Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 02:21

Janoz

Moderator Devschuur®

!litemod

Kijk eens naar usort. Hierin kun je zelf bepalen op waarom een bepaalde regel voor een andere zou moeten komen.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

  • bigbeng
  • Registratie: Augustus 2000
  • Laatst online: 26-11-2021
De notatie die jij noemt (yyyy-mm-dd) is de Zweedse notatie, niet de amerikaanse (m-d-yyyy of mm-dd-yyyy).

Maar het is toch logisch? Je sorteert op alfanumerieke wijze en het wordt dus erg lastig als je de Nederlandse notatie gebruikt. Ik zou als ik jou was gewoon met de Zweedse notatie doorgaan.

Acties:
  • 0 Henk 'm!

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 18-09 16:28

Bosmonster

*zucht*

Wat bigbeng zegt. Je kunt zelf toch eenvoudig de data converteren voor je frontend? Maar in je tekstbestanden wel de makkelijk sorteerbare methode gebruiken?

Acties:
  • 0 Henk 'm!

  • Skaah
  • Registratie: Juni 2001
  • Laatst online: 16-09 18:38
* Skaah is het eens met Bosmonster.

Scheiding van data (tijden) en opmaak. Eventueel kun je nog overwegen om een int te gebruiken voor je tijd (zie time())

Acties:
  • 0 Henk 'm!

Verwijderd

Skaah schreef op 01 juni 2004 @ 15:18:
* Skaah is het eens met Bosmonster.

Scheiding van data (tijden) en opmaak. Eventueel kun je nog overwegen om een int te gebruiken voor je tijd (zie time())
Om dit even verder uit te leggen...

Als je een timestamp gebruikt, dan omzeil je het hele probleem. Je slaat de timestamp op in de database. De timestamp is het aantal seconden na 1 januari 1970 (meen ik). Hoe verder je komt in de tijd, hoe hoger dit getal. Zo kan je dus eenvoudig sorteren op datum.
Pas wanneer je de tijd wil weergeven converteer je de timestamp naar het formaat van keuze met de functie strftime()

Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 02:21

Janoz

Moderator Devschuur®

!litemod

Hetzelfde geld voor de YYMMDD (of afgeleiden) variant. Alleen is een YYYMMDD beter leesbaar dan een timestamp waneer je 'met de hand' even in de data kijkt.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

  • Skaah
  • Registratie: Juni 2001
  • Laatst online: 16-09 18:38
Janoz schreef op 01 juni 2004 @ 15:49:
Hetzelfde geld voor de YYMMDD (of afgeleiden) variant. Alleen is een YYYMMDD beter leesbaar dan een timestamp waneer je 'met de hand' even in de data kijkt.
De echte twiekert kan gewoon UNIXTIME lezen hoor. :+

* Skaah kijkt op zijn horloge, 1086098409 alweer? Nog snel even naar de winkel voor avondeten.

[ Voor 8% gewijzigd door Skaah op 01-06-2004 16:01 . Reden: Smiley toegevoegt, 't is een geintje hè. ]


Acties:
  • 0 Henk 'm!

  • Elect
  • Registratie: Mei 2000
  • Niet online
Aaah mooi. Ik heb het op kunnen lossen door timestamps te gebruiken! Bedankt allemaal :) *weer een happy gotter erbij :P*

HelmChat.eu - Free Motorcycle Group Chats


Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 02:21

Janoz

Moderator Devschuur®

!litemod

Gelukkig dan maar dat je geen topics van voor 2001-09-09 03:46:40 hebt en dat je applicatie vast niet meer draait na 2014-09-07 06:50:08 ;).

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'

Pagina: 1