Webstatt.org - Community seit 2006 - 2012 (2024?)

Array sortieren

user-307
18.04.2007 08: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 lächeln

.., Spark
user-303
18.04.2007 11: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'zwinkern;
?>

(editiertes php.net beispiel)

user-307
19.04.2007 06:01

Die Lösung finde ich besser lächeln user-158ke!

.., Spark