Hi,
ich habe Probleme mit meiner rekursiven Funktion, die die Aufgabe hat alle Blöcke rekursiv zu holen und in ein Array so abzulegen das die Eltern Blöcke alle ihre Kinder untergeordnet bekommen.
Dazu hab ich im ersten Schritt versucht lediglich die Blocknamen rauszufischen, dabei tritt eine für mich nicht wirklich replizierbare Fehlerquelle auf.
Gewünscht ist:
Block A
Block B
..||
..Block B1.1
.....|| Block B1.1.1
.........|| Block B1.1.1.1
.........|| Block B1.1.1.2
Block C
Erhalten hab ich das hier
Block B
...||
...Block C
...Block C
Das Problem ist das ich weiss, dass im Code wo der Wurm drin ist aber nicht wo.
BTW: Wie bekommt ihr das mit den rekursiven Funktionen in den Griff?
ich habe Probleme mit meiner rekursiven Funktion, die die Aufgabe hat alle Blöcke rekursiv zu holen und in ein Array so abzulegen das die Eltern Blöcke alle ihre Kinder untergeordnet bekommen.
Dazu hab ich im ersten Schritt versucht lediglich die Blocknamen rauszufischen, dabei tritt eine für mich nicht wirklich replizierbare Fehlerquelle auf.
PHP-Code:
function _buildBlocks2($string,$cur_block="")
{
preg_match_all(sprintf($this->s_block,'.*?'),$string,$matches,PREG_SET_ORDER);
foreach ($matches as $match)
{
$temp = array('name' => $match[1]);
if ( preg_match_all( sprintf($this->s_block,'.*?'),$match[2],$blocks,PREG_SET_ORDER) )
{
$temp['children']=array();
foreach ($blocks as $block)
$temp['children'][]=$this->_buildBlocks2($match[2],$block[1]);
}
}
return $temp;
}
Block A
Block B
..||
..Block B1.1
.....|| Block B1.1.1
.........|| Block B1.1.1.1
.........|| Block B1.1.1.2
Block C
Erhalten hab ich das hier
Block B
...||
...Block C
...Block C
Das Problem ist das ich weiss, dass im Code wo der Wurm drin ist aber nicht wo.
BTW: Wie bekommt ihr das mit den rekursiven Funktionen in den Griff?
Kommentar