[perl] 2d array sorteren

Pagina: 1
Acties:

  • sharkzor
  • Registratie: Maart 2000
  • Laatst online: 19-05 14:22
ik wil een array in perl sorteren. vanuit een paar sql queries en nog wat dingen bouw ik een tabel op:

@array[rownumber][columnnumber]

$array[0][0]=artikelnummer
$array[0][1]=omschrijving
$array[0][2]=datum (bv '12-10-2004')
$array[0][3]=aantal
$array[0][4]=prijs/s

Dit array word willekeurig gevuld en aangevuld. Hoe kan ik deze op datum sorteren?
ik zat al te zoeken op array sorteren, maar vond alleen wat functies voor enkele arrays...

  • Wacky
  • Registratie: Januari 2000
  • Laatst online: 17-05 19:58

Wacky

Dr. Lektroluv \o/

Google al geprobeerd? Als ik zoek op 'perl sort array' komen er een heleboel hits uit, waarvan de eerste paar nog relevant zijn ook voor zover ik kan zien :)

Nu ook met Flickr account


  • MBV
  • Registratie: Februari 2002
  • Laatst online: 19-05 21:26

MBV

als het voornamelijk SQL query's is, kan je beter met 'order by' statements werken. Dat werkt veel sneller dan in perl of php dingen 'met de hand' sorteren. In php zijn er speciale functies voor, voor perl zou ik dat niet weten.

  • sharkzor
  • Registratie: Maart 2000
  • Laatst online: 19-05 14:22
MBV schreef op 25 oktober 2004 @ 15:28:
als het voornamelijk SQL query's is, kan je beter met 'order by' statements werken. Dat werkt veel sneller dan in perl of php dingen 'met de hand' sorteren. In php zijn er speciale functies voor, voor perl zou ik dat niet weten.
klopt, maar omdat ik meerdere sql query's gebruik en nog handmatig dingen toevoeg, wou ik het graag in een 2d array sorteren. leek me het makkelijkst. maarja, vind maar eens een goede toepasbare sort functie.
ik zie ze nog niet zo snel (of ik zie niet hoe ik die op mijn array kan toepassen)

Verwijderd

sharkzor schreef op 25 oktober 2004 @ 15:36:
[...]vind maar eens een goede toepasbare sort functie.
ik zie ze nog niet zo snel (of ik zie niet hoe ik die op mijn array kan toepassen)
Zoek eens op Bubblesort, Insertionsort, Quicksort, Mergesort, om er maar een paar te noemen. je zult ze natuurlijk wel moeten aanpassen aan je eigen datastructuur, maar dat is meestal niet zo moeilijk.

  • MBV
  • Registratie: Februari 2002
  • Laatst online: 19-05 21:26

MBV

geen bubblesort a.u.b., is in alle gevallen het langzaamste...

offtopic:
is perl echt zo brak dat er geeneens een sorteerfunctie inzit? :X sorteren zit toch in alle moderne programmeertaal-achtigen (c++,php,java,...)?

  • Banpei
  • Registratie: Juli 2001
  • Laatst online: 10:40
[b][message=21969738,noline]
offtopic:
is perl echt zo brak dat er geeneens een sorteerfunctie inzit? :X sorteren zit toch in alle moderne programmeertaal-achtigen (c++,php,java,...)?
Beetje nutteloze uitspraak: perl bevat weldegelijk een sorteer functie (sort) waarbij je naast de default manier deze zelf op verschillende wijzes kan voeden met data en op eigen gedefinieerde manier kan laten sorteren. Dit is juist een enorm flexibele manier om te sorteren, niet iets voor mensen die dus graag 20 voor gedefinieerde functies willen hebben. Maarja, mensen die graag 20 voor geprogrammeerde functies willen programmeren over het algemeen ook niet in Perl. ;)

En dan is er nog altijd Cpan om te zoeken wat voor sorteer algoritmes er beschikbaar zijn. :)

Overigens is dit wel een handig voorbeeldje hoe je zel op meerdere keys sorteerd:
http://www.raycosoft.com/...r.html#sort_multiple_keys

Verwijderd

code:
1
@array= sort {$b->[2] cmp $a->[2]} @array;


Ik denk niet dat je een date makkelijk kunt vergelijken via cmp, maar de strekking zou duidelijk moeten zijn. Kijk anders even op www.perldoc.com voor meer info over sort.

oh owh ooowh... wat is perl toch mooi!

[ Voor 81% gewijzigd door Verwijderd op 25-10-2004 21:58 ]

Pagina: 1