Mehrdimensionales Array Sortieren

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

  • Mehrdimensionales Array Sortieren

    Zunächst einmal hallo an alle!

    Gleich zu Beginn meiner Aktivität hier möchte ich direkt ein kleines Problem ansprechen!

    Ich habe eine Ordnerstruktur welche ich in ein Mehrdimensionales Array speichere!

    Klappt auch alles! Ich übergebe zusätzlich zu dem "Ordner / Filenamen" eine "sortid" welche im Filename enthalten ist!

    Hier mein Code:
    PHP-Code:
    $ordner dir("./angebote/".$_GET['pid']."/");
                        while (
    false !== ($entry $ordner->read())) {
                            if (
    $entry != '.' AND $entry != '..') {
                                
    $main explode("_"$entry);
                                
    $array[][] = ucwords(ereg_replace("-"" "$main[0]));
                                
    $ordner2 dir("./angebote/".$_GET['pid']."/".$entry);
                                
    $entry ucwords(ereg_replace("-"" "$main[0]));
                                while (
    false !== ($sentry $ordner2->read())) {
                                    if (
    $sentry != '.' AND $sentry != '..') {
                                        
    $explo explode("_"$sentry);
                                        
    $sentry ucwords(ereg_replace("-"" "$explo[0]));
                                        
    $array[$entry]['sortid'] = substr($main[1], -11);
                                        
    $array[$entry][$sentry]['name'] = $sentry;
                                        
    $array[$entry][$sentry]['sortid'] = substr($explo[1], -51);
                                    }
                                }
                            }
                        } 
    Hier meine Ausgabe:
    PHP-Code:
    Array
    (
        [
    0] => Managed Service
        
    [Managed Service] => Array
            (
                [
    sortid] => 2
                
    [Managed Service Professional] => Array
                    (
                        [
    name] => Managed Service Professional
                        
    [sortid] => 3
                    
    )

                [
    Managed Service Vergleich] => Array
                    (
                        [
    name] => Managed Service Vergleich
                        
    [sortid] => 5
                    
    )

                [
    Managed Service Business] => Array
                    (
                        [
    name] => Managed Service Business
                        
    [sortid] => 4
                    
    )

                [
    Managed Service Start] => Array
                    (
                        [
    name] => Managed Service Start
                        
    [sortid] => 1
                    
    )

                [
    Managed Service Expert] => Array
                    (
                        [
    name] => Managed Service Expert
                        
    [sortid] => 2
                    
    )

            )

        [
    1] => Allgemein
        
    [Allgemein] => Array
            (
                [
    sortid] => 0
                
    [Einfuehrung] => Array
                    (
                        [
    name] => Einfuehrung
                        
    [sortid] => 1
                    
    )

                [
    Faq] => Array
                    (
                        [
    name] => Faq
                        
    [sortid] => 2
                    
    )

            )


    // ... hier gehts halt immer weiter! :) 
    Nun habe ich 2 Fragen!

    Lässt sich diese Arraystruktur noch Optimieren, so dass man besser mit arbeiten kann? Habt ihr einen Lösungsvorschlag? (bitte in Arraystruktur aufschreiben, möchte selbst auf die Lösung kommen!)

    Und nun die zweite Frage!
    Da ich leider zu doof bin, warum auch immer, das ganze nach meiner "sortid" zu sortieren benötige ich mal einen kleinen "wachrüttler"?!

    greez und dankeschön vorweg!


    ctb
    Zuletzt geändert von creativeby; 27.05.2007, 14:55.

  • #2
    An deiner Stelle würde ich extra Key für Untereinträge bereitstellen, sonst kannst du das Auslesen vergessen. Ansonsten usort.
    Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

    Kommentar


    • #3
      Oh oh, sorry ich hab ausversehen den falschen code gepostet!!!
      Jetzt ist es der richtige!


      Original geschrieben von tontechniker
      An deiner Stelle würde ich extra Key für Untereinträge bereitstellen, sonst kannst du das Auslesen vergessen. Ansonsten usort.
      was genau meinst du damit?

      Kommentar


      • #4
        Code:
         [xyz] [sortid] = x;
        [xyz] [entries] = Array ( [zyx] .... )
        sowas in der Art. Sortieren kannst du das mit usort. Vielleicht sagst du noch was genau du damit machen willst dann wird es vielleicht etwas einfacher. Und ersetzt mal ereg durch str.
        Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

        Kommentar


        • #5
          mhhh okay dann werde ich das mal machen!

          Vor habe ich damit eine "simple" navigation zu erstellen welche durch Ordnerstrukturen dynamisch ist!
          Das heißt ich habe einen Ordner der sich Angebote nennt.
          Der enthält dann diverse Ordner auf welcher per GET zugegriffen wird! und die enthalten dann die diversen unterkategorien mit den entsprechenden Files als "Inhalt"!

          Finde ich eine sehr gute Idee besonders was das Management und Controlling der Inhalte angeht! Weil man kann dann einfach Angebote erweitern und bearbeiten etc.!

          greez

          Kommentar


          • #6
            Quatsch. Für sowas gibts Datenbanken und Nested Sets.
            Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

            Kommentar


            • #7
              Okay, also verwerfe ich die Idee und beschäftige mich mit nested sets!

              Ich wollte es einfach ohne Datenbanken realisieren! Aber da wäre XML wohl dann die bessere variante?!

              greez

              Kommentar

              Lädt...
              X