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");

Hinterlasse einen Kommentar.

Network-wide options by YD - Freelance Wordpress Developer