Hey allemaal,

Nog steeds bezig een goeie datafeed op te zetten en nu wil ik dat hij het sorteert op prijs. Dit is mijn code:

<?php


// Open het csv bestand
$fp = fopen ("http://www.m4n.nl/_df?m=public_stream_csv&sep=tab5&valq=value2&enq=enq1&dfid=5800&duid=9196","r";);


$row=0;

//START LOOP - Haalt data uit het csv bestand van de eerste 12 rijen
for($j = 0; $j < 31; $j++){

$data = fgetcsv ($fp, 1000, ",");
$num = count ($data);
//start op 3e regel, 1e twee zijn troep
if($row >1){

// Kijk of rij even of oneven is en geef een styl mee
if($row%2!=0){
$style='style30';
}
else{
$style='style31';
}

//genereert html rij tabel + voorbereiding URL; DATA[0]= URL

print "<tr><td><a href='".$data[0]."' title='";
echo $data[6].
"'class='".$style."' style ='text-decoration:none'>";

//genereert html voor de hotelnaam en link voor prijs; DATA[6]=plaats
//Als plaats meer dan 24 tekens bevat
if(strlen($data[6])>15){
//zoekt het eerste streepje
$start= stripos($data[6], ' - ');
//$start begint na het streepje
$start=$start+3;
//$start maximale lengte is 24 tekens
//$end=strlen($data[6])-$start;
//$end=$start+15;
$naam= substr($data[6],$start,15).'...';}
else {$naam=$data[6];}
echo $naam .

"</a></td><td class='prijs'><a
href='".$data[0]."' class='".$style."'
style='text-decoration:none'>";

//genereert html voor prijs + einde rij; DATA[5]=prijs
print "€" ." ". $data[5] . "</td></tr>
"; }

//verhoog het rij nummer met 1 en ga naar START LOOP
$row++;

//EIND LOOP
}

//sluit .csv bestand


fclose ($fp);
?>


Hier staat $data[5] voor de prijs. Hoe krijg ik het voor elkaar dat het op prijs gesorteerd wordt? Ik heb op internet al gelezen dat de functie "sort" hier kan bijdragen alleen heb ik geen idee waar ik het moet plaatsen.

Alvast bedankt!

Robert
het is denk ik beter om de csv even in een database te kieperen in plaats een hele mooi functie te schrijven voor iets wat je volgende week anders gesorteerd wil hebben...
Dan zul je met het uitlezen eerst alle data in een array moeten zetten, deze vervolgens sorteren met een van de *sort() functies van php, en tenslotten de array uitlezen en de data weergeven.

Let wel op dat de prijs waarschijnlijk als string geinterpreteerd wordt en dat die dus ook als string gesorteerd zal worden. Dus bijvoorbeeld zo:

1
10
11
2
3
Ik snap het ff niet :P
Is het niet mogelijk om bijvoorbeeld als array het zo in te stellen?

<?php

$sort1 = array ($data[5]);

sort($sort1, SORT_NUMERIC);

?>

Weet iemand de juiste methode? :P Ik kom er niet meer uit
Weet niemand het? Dit is wat ik tot nu toe heb maar geeft daar waar een getal staat iedere keer "array" terug:

<?php
$sort1 = array(data[5]);
sort($sort1);
print "€" ." ". $sort1 . "</td></tr>
"; }

?>

Als iemand het antwoord weet of me meer kan helpen hoor ik het graag. Heb al van alles geprobeerd x.x

Reageren