webForumDet fria alternativet

Sortering av två vektorer

2 svar · 654 visningar · startad av demo

demo
#1

Hej!

Har gjort en sökmaskin som söker efter ett av användaren valt ord, bland html-filerna på servern.

I en vektor lagras antalet träffar för respektive fil som genomsöks. I den andra vektor lagras det värde som finns inom <TITLE>-taggen på html-filen.

Således får jag en vektor, exempelvis $traffar[1] som innehåller antalet träffar och en vektor $titel[1] som innehåller html-filens titel.

Nästa fil får värdet $traffar[2] osv...

När resultatet skrivs ut på en html-sida, så fungerar allt ok. Dock skulle jag vilja ha dessa vektorer sorterade på antalet träffar, med början på högsta värdet, och sedan gradvis nedåt.

När det gäller @arrays så fanns det ett exempel tidigare i ett inlägg, och då kan man ju använda kommandot sort så är problemet löst.

Hur sorterar man dessa vektorer lättast, eller finns det något kommando typ sort även för dessa vektorer?
Eller kan man översätta dessa vektorer till "@arrays" på ett lämpligt sätt?

Mvh,
Demo

[Redigerat av demo den 05 jul 2000]

RobbanMedlem sedan dec. 19992 555 inlägg
#2

Tycker inte riktigt det är logiskt att dela upp det hela i flera arrayer. Borde vara smidigare att använda en flerdimensionell array:

Ett exempel. Sida1 har 12 träffar och titeln "Titel1". Sida 2 har 5 träffar och titeln "Titel2".

$foobar[0][0] = 12;
$foobar[0][1] = 'Titel1';
$foobar[1][0] = 5;
$foobar[1][1] = 'Titel2';

Kan även skrivas:

@foobar = ([12, 'Titel1'], [5, 'Titel2']);

Och så vidare ...

Sedan sorterar du enkelt denna tvådimensionella array i träffordning (störst antal träffar först).

@foobar = sort { $b->[0] <=> $a->[0] } @foobar;

För att sedan skriva ut titeln på den sida som fått flest träffar:

print $foobar[0][1];

------------------
Robban < robban@lipogram.com >

demo
#3

Hej å´tack för lektionen ;)

Var ett ganska smidigt sätt att arbeta med vektorer som du visade.

Tack för hjälpen!

Mvh,
Demo

128 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)