Archief - php: sorteren array

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Incinnerator

Legacy Member
Yu allemaal

ik heb bestanden die ik online wil zetten en de naam van de bestanden zien er zo uit: 7 januari 2005 , 14 januari 2005 enz

ik lees het mapje en zet alles in een array via volgende code
PHP:
$bestanden = array();
		$handle=opendir($path); //openen directory
		while ($file = readdir($handle)) //het lezen van de directory door middel van een while loop
			{         
				if ($file!="." && $file!="..") //als de file geen . of .. is
					{
						if(is_file($path.$file))
						 	{
								$bestanden[] = $file;					
							}
					}
			}

ik wil nu de array sorteren maar het lukt me niet.
je zit met getallen en tekst (mixed).

Kan iemand mij op weg zetten

Bedankt

killgore

Legacy Member
hoe wil je hem sorteren?

imho zou asort of arsort hier zen werk wel kunnen doen.

Col.Kurtz

Legacy Member
Sorteren op type

Code:
$list = array();
$dir = 'data/';

$handle = opendir($dir);

while ($file = readdir($handle)) {
	if (is_file($dir.$file)) {
		$list[$file] = array_pop(explode('.',$dir.$file));
	}
}

asort($list);

print '<table cellpadding=5 cellspacing=5>';

foreach ($list as $key=>$value) {
	print "<tr><td align=right>$key</td></tr>";
}

print '</table>';

Nu zou het ook nog eens op naam moeten gesorteert worden, maar 'k wete niet hoe :)

Spacy2003

Legacy Member
Nu heb ik een klein vraagje hierover wat ik me nu al een tijdje zit af te vragen.
Wanneer gebruik je print en wanneer echo ? :wtf:

Incinnerator

Legacy Member
de bestanden zijn dus word

in array komt dus 7 januari 2005.doc enz

ik dacht misschien enkel getallen te gebruiken : 7012005
maar dan staat er in uwen array nog steeds die .doc en waarschijnlijk kan die daardoor niet sorteren

Incinnerator

Legacy Member
bestanden 20050107 (datum achterwaarts)

tijdens inlezen splitsen op .doc
en dan het 1ste gedeelte wegschrijven in array

sorteren van de array
en dan bij het echo'n er terug .doc achterzetten

dit zou moeten werken

Tyfius

Legacy Member
Spacy2003 zei:
Nu heb ik een klein vraagje hierover wat ik me nu al een tijdje zit af te vragen.
Wanneer gebruik je print en wanneer echo ? :wtf:

maakt imo niet uit. Voor zover ik weet gebruikt men steeds meer echo. Print komt uit C (waarop php gebaseerd is).

Col.Kurtz

Legacy Member
Spacy2003 zei:
Nu heb ik een klein vraagje hierover wat ik me nu al een tijdje zit af te vragen.
Wanneer gebruik je print en wanneer echo ? :wtf:
Is hetzelde. In ben print gewoon vanuit basic (commodore 64).

Col.Kurtz

Legacy Member
Oplossing gevonden om te sorteren op type + naam :

Code:
$list = array();
$dir = 'data/';

$handle = opendir($dir);

while ($file = readdir($handle)) {
	if (is_file($dir.$file)) {
		$ext = array_pop(explode('.',$file));
		if (!isset($list[$ext])) {
			$list[$ext] = array();
		}
		$list[$ext][] = substr($file,0,-strlen($ext)-1);
	}
}

ksort($list);

print '<table>';

foreach ($list as $ext=>$array) {
	foreach ($array as $key=>$value) {
		print "<tr><td><a href='$dir/$value.$ext'>$value</a></td><td>$ext</td>";
	}
}

print '</table>';

killgore

Legacy Member
Tyfius zei:
maakt imo niet uit. Voor zover ik weet gebruikt men steeds meer echo. Print komt uit C (waarop php gebaseerd is).
enige belangerijke verschil tssn print & echo is imho dat echo meer parameters aanvaard als print:

echo "hallo ","wereld"; //Werkt wel
print "hallo ","wereld"; //Werkt niet


Ook: print gedraagt zich ergens nog als een normale php functie (hoewel het ook language construct is). Echo niet :). Op php.net kan je bij de vb. er wel de belangerijkste (maar toch minieme :p) verschilllen uithalen :).
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan