Hilfe! Blockade - Array sortieren

André Griepenburg

Legendäres Mitglied
Hallo,

ich habe eine Shoutbox bei der ich alle Einträge in einer "shout.csv" speicher.
Nun möchte ich jedoch in einem Archiv rückwärts chronologisch jeweils 25 Einträge anzeigen.
Leider fällt mir grade keine vernünftige Möglichkeit ein das Array "umzudrehen".
außer vielleicht Bubble-Sort-Like ... muss aber auch schneller gehen, oder?


Sorry,
ist ne einfache Sache, aber ich hab gerade eine Blockade...
 
hmm...
leider kommt die Shoutbox nicht von mir, ist ein fertiges (inzwischen auch abgewandeltes) Module für mein CMS ^^

Allerdings bin ich ganz froh, dass es keine Datenbank verwendet, denn diese ist ohnehin schon sehr stark beansprucht.
Denke die Datei Option ist in diesem Fall tatsächlich schneller.

Bleibt nur die Frage:
wie sortiere ich das ganze um?
Also z.B. aus der Datei
a|1|X
c|5|Z
d|3|Y
b|4|W

wird dann zu:
b|4|W
d|3|Y
c|5|Z
a|1|X


klar, ne einfache Möglichkeit wäre es hier, dass ganze über eine Schleife einzubinden und über ne temporär variable in ein neues array zu sortieren. Aber ich befürchte, dies dauert recht lang (die Shoutbox hat meist ca. 3000-5000 Zeilen bevor ich die resette)

hmm...
Gibt es denn keine Funktionen in php integriert, die sich hierfür mißbrauchen ließen?


// Edit:
hab da gerade was entdeckt:
http://ch2.php.net/manual/de/function.array-multisort.php
Unter Beispiel 3
hmm, ich muss das mal testen und die Zeit nehmen.
Vielleicht ist das ja schon eine "schnelle" Lösung.


// Edit 2:
Tja, geht leider nicht, da ich hier kein assoziatives Array habe.
hmm.. also weiter grübeln.
 
gelöst ^^

Zumindest habe ich eine Möglichkeit.
Ob es schneller geht.. weiß ich derzeit nicht.

Lösung:

CODE
$daten = file('shout.csv');
$zeilen = count($daten);
echo 'es gibt '.$zeilen.' Zeilen';

$start = '0'; // wo anfangen (zeile)
$stop = '10'; // wie viele eintraege (zeilen)

$stop_tmp = $start+$stop;
for ($i=$start;$i<$stop_tmp;$i++)
{
echo $daten[$i].'<br><br>';
}



jetzt kann natürlich innerhalb der For-Schleife noch beliebig mit den Daten umgegangen werden.
 
Zurück
Oben