Ich arbeite an einer Front-End-Web-App, in der eine verschachtelte ungeordnete Liste für das jQuery-Plugin mcdropdown verwendet würde.
Hier ist die Datenstruktur aus PHP: ein verschachteltes Array von Arrays:
Array
(
[0] => Array
(
[fullpath] => ../foil/alphanumeric/
[depth] => 0
)
[1] => Array
(
[fullpath] => ../foil/alphanumeric/letters/
[depth] => 1
)
[2] => Array
(
[fullpath] => ../foil/alphanumeric/numbers/
[depth] => 1
)
[3] => Array
(
[fullpath] => ../foil/alphanumeric/numbers/symbols/
[depth] => 2
)
)
Im Grunde genommen habe ich die ausgezeichnete Antwort aus dieser Frage auf SO genommen, ein wenig abgeändert:
global $fullpaths; // $fullpaths enthält die obige Datenstruktur in print_r
$result = '';
$currentDepth = -1;
while(!empty($fullpaths))
{
$currentNode = array_shift($fullpaths);
if($currentNode['depth'] > $currentDepth)
{
$result .='';
}
if($currentNode['depth'] < $currentDepth)
{
$result .=str_repeat('', $currentDepth - $currentNode['depth']);
}
$result .= ''. $currentNode['fullpath'] .'';
$currentDepth = $currentNode['depth'];
if(empty($fullpaths))
{
$result .= str_repeat('', 1 + $currentDepth);
}
}
print $result;
und erhielt die folgende Ausgabe:
../foil/alphanumeric/
../foil/alphanumeric/letters/
../foil/alphanumeric/numbers/
../foil/alphanumeric/numbers/symbols/
Dies kann nicht vom mcdropdown jQuery-Plugin akzeptiert werden, es erwartet etwas wie folgt:
'Alphanumeric'
'Letters'
'Numbers'
'Symbols'
Um ehrlich zu sein, verstehe ich nicht ganz, wie die Antwort aus dieser Frage funktioniert, ich habe versucht, diese Lösung auf meine Situation anzupassen, aber bin trotzdem gescheitert.
Jede Hilfe und Anregung wird im Voraus sehr geschätzt.