php Array zu Baumstruktur
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
array
baumstruktur
bundesland
code
datum
deutschland
doppelpunkt
echten daten
idee
kunde
land
machen
problem
sonderzeichen
stadt
string
struktur
url
westfale
wort
-
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 ?
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
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']);
-
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
-
schuhsuche schrieb:
Auch gut.
in den echten Daten ist das Wort vor dem Doppelpunkt garnicht dabei
also ist das substr() zwar ne gute Idee, aber nicht notwendig
schuhsuche schrieb:
Wieso soll das bei Sonderzeichen Probleme machen? Das funktioniert bei Sonderzeichen genauso wie mit binären Daten. PHP ist egal was dein Key ist…
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 -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage