Mensen,

Ik ben op zoek naar hoe ik een array moet sorteren en kom er niet uit.

Deze code:

$dit = new RecursiveDirectoryIterator($dir,RecursiveDirectoryIterator::SKIP_DOTS);
$rit = new RecursiveIteratorIterator($dit);
$sit = new ExampleSortedIterator($rit);
foreach ($sit as $file)
	{

	$bestand = $file->getFilename();
	$bestand = str_replace(".jpg", "", $bestand);
	

echo $bestand;

}
?>


Geeft als resultaat: 0 1 10 11 12 2 3 4 5 6 7 etc maar moet hem krijgen op 0 1 2 3 4 5 6 7 8 9 10.

Heb al diverse sort() en usort() opties geprobeerd maar tevergeefs :(

Wat zie ik over het hoofd?

Des
Zo te zien sorteer je strings.
Maak er getallen van en het gaat goed.
SanThe, bedankt, ik ga even uitzoeken hoe ik de strings omzet in getallen, thanks!
>> Heb al diverse sort() en usort() opties geprobeerd maar tevergeefs :(

Probeer het eens met natsort()
Helaas, natsort() geeft geen resultaat terug :(



$dit = new RecursiveDirectoryIterator($dir,RecursiveDirectoryIterator::SKIP_DOTS);
$rit = new RecursiveIteratorIterator($dit);
$sit = new ExampleSortedIterator($rit);
foreach ($sit as $file)
    {

    $bestand = $file->getFilename();
    $bestand = str_replace(".jpg", "", $bestand);
	$bestand2 = natsort($bestand);    

echo $bestand2;



Ben nog met die conversie bezig van string naar integer maar intval en str_split geven ook geen succesvol resultaat :)

Des
Je opbouw ziet er ook niet logisch uit op het eerste gezicht. Het lijkt erop alsof je 1 bestand sorteert.

Wat zit er $bestand? Wat krijg je te zien als je echo $bestand doet?
Als ik deze code plaats:



$dit = new RecursiveDirectoryIterator($dir,RecursiveDirectoryIterator::SKIP_DOTS);
$rit = new RecursiveIteratorIterator($dit);
$sit = new ExampleSortedIterator($rit);
foreach ($sit as $file)
    {

    $bestand = $file->getFilename();
    $bestand = str_replace(".jpg", "", $bestand);

	
	echo $bestand;


Krijg ik :

0 10 11 12 13 2 3 4 5 6 7 8 9

Dit is de output van $bestand maar wil die op volgorde krijgen... dus gewoon 1 2 3 4 5 6 7 8 9 10 11 12

Doe eens

var_dump($bestand)

Wat staat er dan?

Dan krijg ik:

string(1) "1" string(2) "10" string(2) "11" string(2) "12" string(2) "13" string(1) "2" string(1) "3" string(1) "4" string(1) "5" etc...

Staat er nog iets voor ... zie je het woordje "array" staan?
Nee er staat geen woordje Array voor, alleen dit :)

Reageren