Ergebnis 1 bis 5 von 5

Thema: Verschachteltes array rekursiv durchlaufen

  1. #1
    TP-Insider Avatar von MuschPusch
    Registriert seit
    May 2002
    Ort
    Niederlande
    Beiträge
    612

    Verschachteltes array rekursiv durchlaufen

    Hallo,

    mit zeitdruck im Rücken stelle ich mich gerade zu blöd an... Ich bekomme ein array über eine soap-api und will es rekursiv durchlaufen. Am liebsten von oben nach unten, Stamm für Stamm.

    Code:
    Array
    (
        [category_id] => 1
        [parent_id] => 0
        [name] => Root Catalog
        [position] => 1
        [level] => 0
        [children] => Array
            (
                [0] => Array
                    (
                        [category_id] => 2
                        [parent_id] => 0
                        [name] => Clothing
                        [is_active] => 1
                        [position] => 1
                        [level] => 1
                        [children] => Array
                            (
                                [0] => Array
                                    (
                                        [category_id] => 3
                                        [parent_id] => 0
                                        [name] => Men
                                        [is_active] => 1
                                        [position] => 1
                                        [level] => 2
                                        [children] => Array
                                            (
                                                [0] => Array
                                                    (
                                                        [category_id] => 6
                                                        [parent_id] => 3
                                                        [name] => Pants
                                                        [is_active] => 1
                                                        [position] => 1
                                                        [level] => 3
                                                        [children] => Array
                                                            ()
    [1] => Array
                    (
                        [category_id] => 2
                        [parent_id] => 0
                        [name] => Clothing
                        [is_active] => 1
                        [position] => 1
                        [level] => 1
                        [children] => Array
                            (
                                [0] => Array
                                    (
                                        [category_id] => 3
                                        [parent_id] => 0
                                        [name] => Men
                                        [is_active] => 1
                                        [position] => 1
                                        [level] => 2
                                        [children] => Array
                                            (
                                                [0] => Array
                                                    (
                                                        [category_id] => 6
                                                        [parent_id] => 3
                                                        [name] => Pants
                                                        [is_active] => 1
                                                        [position] => 1
                                                        [level] => 3
                                                        [children] => Array
                                                            ()
    (es ist hier vereinfacht aber ganze ist auf diese Weise bis ins endlose verschachtelt)

    So gehts auf jeden Fall nicht:

    PHP-Code:
    function treeCat ($allCategories){

    foreach (
    $allCategories['children'] as $cat) {

    // ja, ja... tue irgendwas... 

    treeCat($cat);

    }


    Was mich am meisten verwundert, das Ganze wird endlos durchlaufen. Ich hatte eigentlich eher den Fehler erwartet das nur ein "Stamm" bis zum Ende durchlaufen wird und beim letzten Kind gestopt wird.

    gruss Volkan
    bythewaythewebsuxgoofflineandenjoytheday

  2. #2
    TP-Special Mod Avatar von steffenk
    Registriert seit
    Feb 2005
    Ort
    Haan / NRW
    Beiträge
    12.869
    da gibts was: array_walk_recursive

    TYPO3 · MySQLDumper · dislabs
    ·
    manche Mühlen mahlen schneller ...
    "Ich habe Rücken"
    Horst Schlämmer

  3. #3
    TP-Specialist Avatar von phpBuddy
    Registriert seit
    Aug 2004
    Ort
    Kaiserslautern
    Beiträge
    4.678
    Hallo Volkan,

    Du solltest auch prüfen ob es sich beim Wert überhaupt um ein Array handelt, wenn Du es erneut an die Funktion übergibst.

    PHP 5 Weg, sofern die entsprechenden SPL Klassen verfügbar sind (was sie standardmäßig sein sollten):
    PHP-Code:
    foreach (new RecursiveArrayIterator$array ) as $arr)
    {
        echo 
    "<pre>" .print_r$arrtrue ). "</pre>";


    PHP 4 Weg mit einer eigenen Funktion:
    PHP-Code:
    function rArray$array )
    {
        foreach(
    $array as $schluessel => $wert)
        {
            if (
    is_array$schluessel ))
            {
                
    rArray$schluessel );
            }
            else
            {
                echo 
    "<pre>" .print_r$werttrue ). "</pre>";
            }
        }
    }
    // Funktion aufrufen
    rArray$array ); 

  4. #4
    TP-Special Mod Avatar von steffenk
    Registriert seit
    Feb 2005
    Ort
    Haan / NRW
    Beiträge
    12.869
    Andreas: SPL ist nicht zwingend aktiviert, das kommt IMHO erst in 5.3

    TYPO3 · MySQLDumper · dislabs
    ·
    manche Mühlen mahlen schneller ...
    "Ich habe Rücken"
    Horst Schlämmer

  5. #5
    TP-Insider Avatar von MuschPusch
    Registriert seit
    May 2002
    Ort
    Niederlande
    Beiträge
    612
    Zitat Zitat von steffenk Beitrag anzeigen
    da gibts was: array_walk_recursive

    Genau so was suchte ich... Danke Schön...

    @Rizzo: SPL steht auf meiner "toRead" Liste aber bin noch nicht dazu gekommen...
    bythewaythewebsuxgoofflineandenjoytheday

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Ähnliche Themen

  1. Verschachteltes Array aus Nested Sets
    Von Schneemann im Forum Traum-Dynamik
    Antworten: 5
    Letzter Beitrag: 28.04.2008, 23:56
  2. [CSS] Horizontales Verschachteltes Menue
    Von counter18 im Forum HTML & CSS
    Antworten: 2
    Letzter Beitrag: 02.07.2007, 12:37
  3. mod_rewrite - rekursiv?
    Von Arno Simon im Forum Traum-Dynamik
    Antworten: 6
    Letzter Beitrag: 18.05.2005, 17:47
  4. $_POST Array durchlaufen
    Von alexf812 im Forum Traum-Dynamik
    Antworten: 35
    Letzter Beitrag: 13.02.2005, 17:17
  5. Array mit Lücken in Schleife durchlaufen?
    Von Weede im Forum Traum-Dynamik
    Antworten: 17
    Letzter Beitrag: 18.06.2004, 13:55

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

     

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51