BlackBoard (http://www.black-board.net/index.php)
- Design, Programmierung & Entwicklung (http://www.black-board.net/board.php?boardid=55)
-- Programmieren (http://www.black-board.net/board.php?boardid=4)
--- PHP Mehrdimensionales Array sortieren (http://www.black-board.net/thread.php?threadid=23720)


Geschrieben von HeaD am 16.05.2009 um 16:31:

  Mehrdimensionales Array sortieren

Mein Array sieht wie folgt aus:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
Array 
(
   [0] => Array
   (
      [user_id] => 1
      [user_name] => xxx1
      [...]
      [user_level] => 2
   )

   [1] => Array
   (
      [user_id] => 15
      [user_name] => xxx8
      [...]
      [user_level] => 1
   )

   [2] => Array
   (
      [user_id] => 13
      [user_name] => xxx4
      [...]
      [user_level] => 2
   )

  [...]

)   


Nun möchte ich das Array wahlweise nach user_level oder user_name sortieren. Ich hab nun schon ewig rumprobiert aber ich kapier das irgendwie nicht. Alle Beispiele die ich gesehen haben sortieren das äußere Array nach 0 1 2 3 ... aber so ist es sortiert und so wollt ich es nicht haben. Andere Beispiele hab ich dann schon gar nicht mehr verstanden +fg+

Hat vielleicht jemand ein Codeschnipsel oder wenigstens einen Ansatz für mich?



Geschrieben von LX am 16.05.2009 um 17:07:

 

Da musste wohl usort() und eine Callbackfunktion bemühen. Das sieht dann vielleicht etwa so aus:

php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
function cb_sort $a$b )
{
  if ( $a 'user_level' ] < $b 'user_level' ] )
    return -1;
  elseif ( $a 'user_level' ] > $b 'user_level' ] )
    return 1;
  else
    return 0;
}

usort $array'cb_sort' );



Geschrieben von HeaD am 16.05.2009 um 17:31:

 

ah... sowas ähnliches hatte ich schon versucht nach sonem Beispiel aber da war soviel drumrum das ich das net ganz nachvollziehen konnte.

So hat es nun funktioniert .. danke dir smile


Forensoftware: Burning Board 2.3.6, entwickelt von WoltLab GmbH