Ankündigung

Einklappen
Keine Ankündigung bisher.

Ein (Teil)Array anhand von level und depth zurückgeben.

Einklappen

Neue Werbung 2019

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

  • Ein (Teil)Array anhand von level und depth zurückgeben.

    Hallo zusammen,

    auf der Suche nach der Lösung eines Problems habe ich mich nach langem lesen und googlen hier angemeldet. Das ist also nun mein erster Beitrag:

    Ich habe ein mehrdimensionales Array, das wie folgt aus der einer Datenbank aufgebaut wird:

    PHP-Code:
    Array
    (
        [
    1] => Array
            (
                [
    parent] => 
                [
    display] => Linktitel
                
    [url] => index.php
            
    )
        [
    2] => Array
            (
                [
    parent] => 
                [
    display] => Linktitel
                
    [url] => index.php
                
    [children] => Array
                    (
                        [
    5] => Array
                            (
                                [
    parent] => 2
                                
    [display] => Linktitel
                                
    [url] => index.php
                            
    )
                        [
    6] => Array
                            (
                                [
    parent] => 2
                                
    [display] => Linktitel
                                
    [url] => index.php
                                
    [children] => Array
                                    (
                                        [
    7] => Array
                                            (
                                                [
    parent] => 6
                                                
    [display] => Linktitel
                                                
    [url] => index.php
                                            
    )
                                        [
    8] => Array
                                            (
                                                [
    parent] => 6
                                                
    [display] => Linktitel
                                                
    [url] => index.php
                                                
    [children] => Array
                                                    (
                                                        [
    9] => Array
                                                            (
                                                                [
    parent] => 8
                                                                
    [display] => Linktitel
                                                                
    [url] => index.php
                                                            
    )
                                                    )
                                            )
                                    )
                            )
                    )
            )
        [
    3] => Array
            (
                [
    parent] => 
                [
    display] => Linktitel
                
    [url] => index.php
            
    )
        [
    4] => Array
            (
                [
    parent] => 
                [
    display] => Linktitel
                
    [url] => index.php
            
    )

    Allerdings verzweifle ich an einer Funktion, die mir ein (Sub)Array liefern soll, das wie folgt aufgerufen werden soll:

    PHP-Code:
    function subarray($parent$depth)
    {
      ...
      return 
    $subarray;

    Ich möchte als z.B. mit $testarray = subarray(0,1) nur die oberste Ebene haben:

    PHP-Code:
    Array 

        [
    1] => Array 
            ( 
                [
    parent] =>  
                [
    display] => Linktitel 
                
    [url] => index.php 
            

        [
    2] => Array 
            ( 
                [
    parent] =>  
                [
    display] => Linktitel 
                
    [url] => index.php 
            
    )
        [
    3] => Array 
            ( 
                [
    parent] =>  
                [
    display] => Linktitel 
                
    [url] => index.php 
            

        [
    4] => Array 
            ( 
                [
    parent] =>  
                [
    display] => Linktitel 
                
    [url] => index.php 
            


    oder mit $testarray = subarray(2,2) nur das folgende Array:

    PHP-Code:
    Array 
                    ( 
                        [
    5] => Array 
                            ( 
                                [
    parent] => 
                                
    [display] => Linktitel 
                                
    [url] => index.php 
                            

                        [
    6] => Array 
                            ( 
                                [
    parent] => 
                                
    [display] => Linktitel 
                                
    [url] => index.php 
                                
    [children] => Array 
                                    ( 
                                        [
    7] => Array 
                                            ( 
                                                [
    parent] => 
                                                
    [display] => Linktitel 
                                                
    [url] => index.php 
                                            

                                        [
    8] => Array 
                                            ( 
                                                [
    parent] => 
                                                
    [display] => Linktitel 
                                                
    [url] => index.php 
                                                
    [children] => Array 
                                                    ( 
                                                        [
    9] => Array 
                                                            ( 
                                                                [
    parent] => 
                                                                
    [display] => Linktitel 
                                                                
    [url] => index.php 
                                                            

                                                    ) 
                                            ) 
                                    ) 
                            ) 
                    ) 
    Vielleicht gibt's da auch was fertiges? Ich habe leider nichts gefunden und würde mich sehr freuen, wenn mir jemand auf die Sprünge helfen könnte.

    Viele Grüße
    Mark

  • #2
    [MOD: verschoben]
    [COLOR="#F5F5FF"]--[/COLOR]
    [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
    „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
    [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
    [COLOR="#F5F5FF"]
    --[/COLOR]

    Kommentar


    • #3
      Zitat von greatcthulhu Beitrag anzeigen
      das wie folgt aus der einer Datenbank aufgebaut wird:
      Gleiche Funktion, nur mit den Parametern die du schon genannt hast. Ist ja schätz ich mal rekursiv, kann man also gut an der entsprechenden Stelle implementieren.
      [I]You know, my wife sometimes looks at me strangely. „Duncan“, she says, „there's more to life than Solaris“. Frankly, it's like she speaks another language. I mean, the words make sense individually, but put them together and it's complete nonsense.[/I]

      Kommentar


      • #4
        Zitat von greatcthulhu Beitrag anzeigen
        Ich möchte als z.B. mit $testarray = subarray(0,1) ...
        Da du ja anscheinend immer weißt, von welchem Eintrag du die "children" haben möchtest, kannst du dir das jeweilige Array rausziehen, per Schleife durchlaufen und alle Einträge "children" via unset() löschen.
        Um eine ID aus den tieferen Ebenen zu finden habe ich auch gerade heute eine Funktion gesucht. Fündig geworden bin ich im Sitepoint-Forum und habe darauf aufgebaut...
        Je grösser der Dachschaden, desto schöner der Ausblick zum Himmel. - [WIKI]Karlheinz Deschner[/WIKI]

        Kommentar


        • #5
          Hallo,

          probiers doch mal mit foreach().

          Kommentar

          Lädt...
          X