:::: MENU ::::

WebDevExp

Meine Erfahrungen in der Webentwicklerwelt

Mehrdimensionales Array sortieren

php

Mehrdimensionales Array sortieren

Ich stand vor dem Problem, dass ich Daten aus einer externen Datei bekam, statt einer Datenbanktabelle, wodurch verschiedene Sortierungen, nicht durch einfaches Ändern des Queries möglich waren. Im Internet fand ich recht viele Lösungen für mein Problem, aber keine war die perfekte, also baute ich anhand der vielen Beispiele die, für mich, beste und einfachste Lösung.

Ziel ist es, dieses Array wahlweise nach „cnt“, „avg“, „single“ zu sortieren:

Array (
  "test1" => Array( "cnt" => 41209, "avg" => 0.00112, "sum" => 46.370),
  "test2" => Array( "cnt" => 6809, "avg" => 0.00210, "sum" => 14.358),
  "test3" => Array( "cnt" => 13, "avg" => 0.00065, "sum" => 0.00845),
)

Die Variable $sort im Beispiel ist mit „cnt“, „avg“ bzw. „sum“ belegt.

function sortit($a, $b)
{
  global $sort;
  if($a[$sort] == $b[$sort]) return 0;
  return ($a[$sort] > $b[$sort]) ? -1 : 1;  //DESC, also 10 bis 1, für ASC ein 
}
//$data ist das mehrdimensionale Array
uasort($data, "sortit");

Leave a comment

Loading Facebook Comments ...