Willkommen in der Webstatt Zum Webstatt Blog und Stories
Spark am 18.04.07 10:22

Hi!

Ich möchte gerne folgendes Array sortieren:

Array (
[0] => Array (
[titel] => Test1
[timestamp] => 1176884169
)
[1] => Array (
[titel] => Test2
[timestamp] => 1176884239
)
[2] => Array (
[titel] => Test3
[timestamp] => 1176883142
)
)

Dabei sollen die drei Arrays hinterher so angeordnet sein, dass sie nach dem Timestamp sortiert sind.
Array (
[0] => Array (
[titel] => Test2
[timestamp] => 1176884239
)
[1] => Array (
[titel] => Test1
[timestamp] => 1176884169
)
[2] => Array (
[titel] => Test3
[timestamp] => 1176883142
)
)

Geht das? Finde da irgendwie keinen passenden Lösungsweg...


//EDIT

Ich habs jetzt erstmal so gemacht:
$elements = count($array)-1;

for($y = 0; $y < $elements; $y++) {
for($x = 0; $x < $elements; $x++) {
if($rows[$x][timestamp] < $rows[$x+1][timestamp]) {
$tmp_title_b = $rows[$x][titel];
$tmp_title_s = $rows[$x+1][titel];
$tmp_timestamp_b = $rows[$x][timestamp];
$tmp_timestamp_s = $rows[$x+1][timestamp];

$rows[$x][titel] = $tmp_title_s;
$rows[$x+1][titel] = $tmp_title_b;
$rows[$x][timestamp] = $tmp_timestamp_s;
$rows[$x+1][timestamp] = $tmp_timestamp_b;
}
}
}

Wenn jemand ne performatere/einfachere Lösung hatt, freu ich mich natürlich weiterhin auf ein Antwort :)

netcup.de Warum gibt es hier Werbung?
Snake am 18.04.07 13:32

versuch doch sowas:
<?php
function cmp($a, $b)
{
if ($a['timestamp'] == $b['timestamp']) {
return 0;
}
return ($a['timestamp'] < $b['timestamp']) ? -1 : 1;
}

usort($array, 'cmp');
?>

(editiertes php.net beispiel)

Spark am 19.04.07 08:01

Die Lösung finde ich besser :) Danke!

Creative Commons Lizenzvertrag
Alle Inhalte des Webstatt-Archivs stehen unter einer Creative Commons Namensnennung - Weitergabe unter gleichen Bedingungen 3.0 Unported Lizenz.

Impressum & Kontakt