Fundstück: PHP Multi Dimensionales Array Nach Key Sortieren

Hallo,

ich bin heute auf einen sehr hübschen Code Schnipsel gestoßen. Mit Hilfe dieser Funktion lässt sich ein beliebiges Multi Dimensionales Array nach einem bestimmten Key sortieren. Funktioniert natürlich nur bei assoziativen Arrays 🙂

Die Funktion:

[php]
function array_sort($array, $on, $order=SORT_ASC)
{
$new_array = array();
$sortable_array = array();

if (count($array) > 0) {
foreach ($array as $k => $v) {
if (is_array($v)) {
foreach ($v as $k2 => $v2) {
if ($k2 == $on) {
$sortable_array[$k] = $v2;
}
}
} else {
$sortable_array[$k] = $v;
}
}

switch ($order) {
case SORT_ASC:
asort($sortable_array);
break;
case SORT_DESC:
arsort($sortable_array);
break;
}

foreach ($sortable_array as $k => $v) {
$new_array[$k] = $array[$k];
}
}

return $new_array;
}
[/php]

Beispiel:

[php]
$values[] = array ("id" => "384f5de3ea2fded", sellerid => 1, sellername => "Zeppelin");
$values[] = array ("id" => "384f5de3ea2fdef", sellerid => 4, sellername => "Buxbaum");
$values[] = array ("id" => "384f5de3ea2fde1", sellerid => 3, sellername => "Rosenkranz");
$values[] = array ("id" => "384f5de3ea2fde2", sellerid => 7, sellername => "Lotus");

print_r(array_sort($values, "sellerid"));
print_r(array_sort($values, "sellername"));
[/php]

About Grrbrr

Grrbrr heißt eigentlich Nicolai Schönberg. Er arbeitet als Fachinformatiker Anwendungsentwicklung, ließt gerne Fantasybücher, treibt gerne Sport und spielt ab und zu Computerspiele.
Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *