mehrdimensionales Array sortieren

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • mehrdimensionales Array sortieren

    Hi Leute,

    folgendes Array ist die Grundlage für meine Sortierung:
    PHP-Code:
    Array
    (
      [
    verein] => Array
        (
          [
    name] => Verein
          
    [priority] => 2
          
    [sub] => Array
            (
              [
    trainer] => Array
                (
                  [
    name] => Trainer
                  
    [priority] => 2
                
    )
              [
    erfolgsbilanzen] => Array
                (
                  [
    name] => Erfolgsbilanzen
                  
    [priority] => 3
                
    )
              [
    vorstand] => Array
                (
                  [
    name] => Vorstand
                  
    [priority] => 1
                
    )
            )
        )
      [
    news] => Array
        (
          [
    name] => News
          
    [priority] => 1
          
    [sub] => Array
            (
              [
    newsletter] => Array
                (
                  [
    name] => Newsletter
                  
    [priority] => 2
                
    )
              [
    archiv] => Array
                (
                  [
    name] => Archiv
                  
    [priority] => 1
                
    )
            )
        )
      [
    sportler] => Array
        (
          [
    name] => Sportler
          
    [priority] => 3
          
    [sub] => Array
            (
              [
    bestenliste] => Array
                (
                  [
    name] => Bestenliste
                  
    [priority] => 1
                
    )
              [
    steckbriefe] => Array
                (
                  [
    name] => Steckbriefe
                  
    [priority] => 2
                
    )
            )
        )
      [
    interaktiv] => Array
        (
          [
    name] => Interaktiv
          
    [priority] => 4
        
    )

    Das ich das Array mit uasort und einer Sortierfunktion sortiere ist mir schon klar. Es ist kein Problem, die erste Ebene des Arrays zu sortieren, sodass dann die Reihenfolge News, Verein, Sportler, Interaktiv herauskommt.
    Jetzt meine Frage: Wie stelle ich es denn an, dass ich auch die Unterrubriken sortieren kann? Sollte ich das Array mit foreach durchgehen und dann nach der Rubrik "sub" suchen, oder habt ihr eine andere Idee?

    Vielen Dank schon mal.
    swimming

  • #2
    naja ich würde mir nie so ein array zimmern, aber ich würde es bei der ausgabe dann sortieren...
    je nachdem was Du vorhast, wann es eben sinnmacht zu sortieren.
    Beantworte nie Threads mit mehr als 15 followups...
    Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

    Kommentar


    • #3
      Wenn ich das richtig verstanden habe..
      Vielleicht hilft es dir
      mfg
      PHP-Code:
      <?php

      /**
       * @return array
       * @param array $array_to_sort
       * @desc sort an array and subarrays
      */
      function rec_ksort($array_to_sort) {
          
      $temp_array = array();
          
      $arrays 0;
          foreach(
      $array_to_sort AS $id=>$element) {
              if(
      is_array($element)) $arrays++;
          }
          if(
      $arrays == && count($array_to_sort) > 1) {
              
      ksort($array_to_sort);
          }
          else {
              foreach(
      $array_to_sort AS $id=>$element) {
                  if(
      is_array($element)) $temp_array[$id] = rec_uasort($element);
                  else 
      $temp_array[$id] = $element;
              }
              
      ksort($temp_array);
              
      $array_to_sort $temp_array;
          }

          return 
      $array_to_sort;

      }


      $array = array('foo'=>'bar','leck'=>'mich','scheiße'=>'kacke');
      $array['mist'] = array('name'=>'hausnummer','arbeit'=>'arbeitlos');
      echo 
      '<pre>';
      print_r($array);
      print_r(rec_ksort($array));
      ?>

      Kommentar

      Lädt...
      X