kostenloser Webspace werbefrei: lima-city


php Array zu Baumstruktur

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    schuhsuche

    schuhsuche hat kostenlosen Webspace.

    Hallo

    ich möchte aus mehreren einfachen Arrays eine Baumstruktur machen.

    als Beispiel mal mit diesem Array
    Array
    (
        [0] => Array
            (
                [0] => Europa
                [1] => Land: Deutschland
                [2] => Bundesland: Nordrhein-Westfalen
                [3] => Stadt: Dortmund
                [4] => Kunde: Hans
            )
    
        [1] => Array
            (
                [0] => Europa
                [1] => Land: Deutschland
                [2] => Bundesland: Nordrhein-Westfalen
                [3] => Stadt: Dortmund
                [4] => Kunde: Tina
            )
    
        [2] => Array
            (
                [0] => Europa
                [1] => Land: Deutschland
                [2] => Bundesland: Berlin
                [3] => Stadt: Berlin
                [4] => Kunde: Peter
            )
    
    )
    
    // ...... usw .....


    Ziel ist es, daraus eine Baustruktur zu machen

    $result = array(); 
    
    $result[0]['val'] = 'Europa'; 
    $result[0][0]['val'] = 'Deutschland'; 
    
    $result[0][0][0]['val'] = 'Bundesland: Nordrhein-Westfalen'; 
    $result[0][0][0][0]['val'] = 'Stadt: Dortmund'; 
    $result[0][0][0][0][0]['val'] = 'Kunde: Hans'; 
    $result[0][0][0][0][1]['val'] = 'Kunde: Tina'; 
    
    $result[0][0][1]['val'] = 'Bundesland: Berlin'; 
    $result[0][0][1][0]['val'] = 'Stadt: Berlin'; 
    $result[0][0][1][0][0]['val'] = 'Kunde: Peter';



    Ansicht als print_r($result);

    Array
    (
        [0] => Array
            (
                [val] => Europa
                [0] => Array
                    (
                        [val] => Deutschland
                        [0] => Array
                            (
                                [val] => Bundesland: Nordrhein-Westfalen
                                [0] => Array
                                    (
                                        [val] => Stadt: Dortmund
                                        [0] => Array
                                            (
                                                [val] => Kunde: Hans
                                            )
    
                                        [1] => Array
                                            (
                                                [val] => Kunde: Tina
                                            )
    
                                    )
    
                            )
    
                        [1] => Array
                            (
                                [val] => Bundesland: Berlin
                                [0] => Array
                                    (
                                        [val] => Stadt: Berlin
                                        [0] => Array
                                            (
                                                [val] => Kunde: Peter
                                            )
    
                                    )
    
                            )
    
                    )
    
            )
    
    )



    wie bekommr ich sie $daten in eine Baumstruktur wie im $result Beispiel ?
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    In etwa so?
    $array = array(
    	array('Europa', 'Land: Deutschland', 'Bundesland: Nordrhein-Westfalen', 'Stadt: Dortmund', 'Kunde: Hans'),
    	array('Europa', 'Land: Deutschland', 'Bundesland: Nordrhein-Westfalen', 'Stadt: Dortmund', 'Kunde: Tina'),
    	array('Europa', 'Land: Deutschland', 'Bundesland: Berlin', 'Stadt: Berlin', 'Kunde: Peter')
    );
    
    $tree = array();
    foreach($array as $entry) {
    	$continent = $entry[0];
    	$land = substr($entry[1], 6);
    	$bundesland = substr($entry[2], 12);
    	$stadt = substr($entry[3], 7);
    	$kunde = substr($entry[4], 7);
    	if(!isset($tree[$continent]))
    		$tree[$continent] = array();
    	if(!isset($tree[$continent][$land]))
    		$tree[$continent][$land] = array();
    	if(!isset($tree[$continent][$land][$bundesland]))
    		$tree[$continent][$land][$bundesland] = array();
    	if(!isset($tree[$continent][$land][$bundesland][$stadt]))
    		$tree[$continent][$land][$bundesland][$stadt] = array();
    	$tree[$continent][$land][$bundesland][$stadt][] = $kunde;
    }
    
    print_r($tree);
    
    echo("\nWer lebt in /Europa/Deutschland/Berlin/Berlin?\n");
    print_r($tree['Europa']['Deutschland']['Berlin']['Berlin']);
  4. Autor dieses Themas

    schuhsuche

    schuhsuche hat kostenlosen Webspace.

    hm, naja das waren wohl blöde Beispieldaten,
    in den echten Daten ist das Wort vor dem Doppelpunkt garnicht dabei
    also ist das substr() zwar ne gute Idee, aber nicht notwendig

    auch hat man jetzt die "Strings" als KEY, der Ebenen
    was aber bei Sonderzeichen im String wohl evtl Probleme macht

    viel lieber wäre mir,, wenn man die KEYs ganz "neutral" hätte,
    damit man auch eine Struktur aus Strings mit Sonderzeichen hinbekommt




  5. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    schuhsuche schrieb:
    in den echten Daten ist das Wort vor dem Doppelpunkt garnicht dabei
    also ist das substr() zwar ne gute Idee, aber nicht notwendig
    Auch gut.

    schuhsuche schrieb:
    auch hat man jetzt die "Strings" als KEY, der Ebenen
    was aber bei Sonderzeichen im String wohl evtl Probleme macht

    viel lieber wäre mir,, wenn man die KEYs ganz "neutral" hätte,
    damit man auch eine Struktur aus Strings mit Sonderzeichen hinbekommt
    Wieso soll das bei Sonderzeichen Probleme machen? Das funktioniert bei Sonderzeichen genauso wie mit binären Daten. PHP ist egal was dein Key ist…
  6. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!