Bekijk Volledige Versie : Array op alfabetische volgorde sorteren
Jorick de Lange
27/10/04, 14:25
Hallo,
Ik ben bezig met een array (zie hieronder de code) en wil deze sorteren op
alfabet.
Dat is tot nu toe gelukt, alleen ik kamp met een andere probleem, bij $prijs
behoort hij ook overal de goede prijs neer te zetten, alleen doet hij dat
niet.
Hieronder even de code om het verhaal te verduidelijken:
<?php
$data = file("test.txt");
$counter = count($data);
for($regel = 0; $regel < $counter; $regel++) {
$stukje = explode("|", $data[$regel]);
$merk[] = $stukje[0];
$catagorie[] = $stukje[1];
$prijs = $stukje[2];
}
// nu je array-sort functie loslaten op $merk en $cat
array_multisort($merk, SORT_ASC, $catagorie, SORT_ASC);
for($regel = 0; $regel < $counter; $regel++) {
echo ("<tr><td>".$merk[$regel] ."</td><td>". $catagorie[$regel]
.."</td><td>". $prijs."</td></tr>");
}
?>
test.txt bevat:
Canon|Digitaal|199,--
Canon|Analoog|199,--
Pentax|Analoog|60,--
Nou zet hij dus in de tabel (die hij wel weergeeft) na elk record als prijs
60,--.
Terwijl ze wel degelijk andere prijzen hebben!
Hoe krijg ik het voor elkaar om de prijzen overal goed te krijgen? Ik heb al
veel geprobeerd, maar dat leverde alleen maar error's.
Alvast bedankt,
--
Met vriendelijke groet,
Jorick de Lange
mail@jorickdelange.nl
www.jorickdelange.nl
Ronald Klip
27/10/04, 14:45
Jorick de Lange schreef:
>
> for($regel = 0; $regel < $counter; $regel++) {
> $stukje = explode("|", $data[$regel]);
> $merk[] = $stukje[0];
> $catagorie[] = $stukje[1];
> $prijs = $stukje[2];
> }
> // nu je array-sort functie loslaten op $merk en $cat
> array_multisort($merk, SORT_ASC, $catagorie, SORT_ASC);
> for($regel = 0; $regel < $counter; $regel++) {
> echo ("<tr><td>".$merk[$regel] ."</td><td>". $catagorie[$regel]
> ."</td><td>". $prijs."</td></tr>");
> }
>
> Nou zet hij dus in de tabel (die hij wel weergeeft) na elk record als prijs
> 60,--.
> Terwijl ze wel degelijk andere prijzen hebben!
Tja, maar jouw $prijs is een gewone variabele, met 1 waarde. Jij geeft
in de loop immers deze opdracht:
> $prijs = $stukje[2];
De waarde van $prijs zal dus gelijk zijn aan de laatste $stukje[2]. Maak
van $prijs ook een array.
--
groet, Ronald
Jorick de Lange
27/10/04, 14:55
> Tja, maar jouw $prijs is een gewone variabele, met 1 waarde. Jij geeft
> in de loop immers deze opdracht:
> > $prijs = $stukje[2];
> De waarde van $prijs zal dus gelijk zijn aan de laatste $stukje[2]. Maak
> van $prijs ook een array.
Eeuh... Array's zijn niet mijn sterkste kant. Hoe moet ik hem dan
aanpassen??
Ik heb nou dit:
<?php
$data = file("test.txt");
$counter = count($data);
for($regel = 0; $regel < $counter; $regel++) {
$stukje = explode("|", $data[$regel]);
$merk[] = $stukje[0];
$catagorie[] = $stukje[1];
$prijs[] = $stukje[2];
}
// nu je array-sort functie loslaten op $merk en $cat
array_multisort($merk, SORT_ASC, $catagorie, SORT_ASC);
for($regel = 0; $regel < $counter; $regel++) {
echo ("<tr><td>".$merk[$regel] ."</td><td>". $catagorie[$regel]
.."</td><td>". $prijs."</td></tr>");
}
?>
Maar dan geeft hij i.p.v. de prijs de tekst ''Array" weer.
--
Met vriendelijke groet,
Jorick de Lange
mail (at) jorickdelange (dot) nl
www.jorickdelange.nl
Jorick de Lange
27/10/04, 15:05
<knip knip knip>
Oh! Ben d'r al uit! :-))
Bedankt!
--
Met vriendelijke groet,
Jorick de Lange
mail (at) jorickdelange (dot) nl
www.jorickdelange.nl
Jorick de Lange schreef :
> <knip knip knip>
>
> Oh! Ben d'r al uit! :-))
Kun je de oplossing posten? Dan kan iemand die misschien morgen
hetzelfde probleem heeft, het makkelijker oplossen :-)
--
Joz - jvd_609 [at] hotmail [dot] com
Home: http://www.josvandijken.tk
Ftp info: http://www.jvd-ftp.tk
Ftp: ftp://jvd.no-ip.info:27015
Jorick de Lange
02/11/04, 18:15
> Kun je de oplossing posten? Dan kan iemand die misschien morgen
> hetzelfde probleem heeft, het makkelijker oplossen :-)
Excuus voor de late reactie, maar hier is de code:
<?php
$data = file("test.txt");
$counter = count($data);
for($regel = 0; $regel < $counter; $regel++) {
$stukje = explode("|", $data[$regel]);
$merk[] = $stukje[0];
$catagorie[] = $stukje[1];
$omschrijving[] = $stukje[2];
$prijs[] = $stukje[3];
}
// nu je array-sort functie loslaten op $merk en $cat
array_multisort($merk, SORT_ASC, $catagorie, SORT_ASC, $omschrijving,
SORT_ASC, $prijs, SORT_NUMERIC);
for($regel = 0; $regel < $counter; $regel++) {
echo ("<tr><td>".$merk[$regel] ."</td><td>". $catagorie[$regel]
.."</td><td>". $omschrijving[$regel] ."</td><td align=\"right\">¤ ".
$prijs[$regel]."</td></tr>");
}
?>
Je tekst bestand moet een aantal records bevatten, bijvoorbeeld:
canon|analoog|EOS 300|120,--
Je kan hem uiteraard naar hartelust uitbreiden...
Succes!
--
Met vriendelijke groet,
Jorick de Lange
mail@jorickdelange.nl
www.jorickdelange.nl
Jorick de Lange
09/11/04, 17:05
<knip wat ik eerder schreef incl. code>
Eventueel een online versie is te zien op
http://www.fotoverhoeff.nl/occasion.php
Niet dat je daar de bron kan bekijken (omdat 't dus PHP is) maar wél wat het
doet...
--
Met vriendelijke groet,
Jorick de Lange
mail (at) jorickdelange (dot) nl
www.jorickdelange.nl