predator
web designer
интересный казус с рекурсией
немогу понять почему так.
вот код:
он не срабатывает как надо, т.е. не выводит ид-шники ветки нужной, которая начинается с $_intId
дерево adjency list: id->pid.
додумался до того что пойнтер в массиве при каждой рекурсии не устанавливается на начала массива
поставил reset( $arrTree );
тоже не помогло !!!
только когда убрал амперсанд перед $arrTree заработало, оно и понятно
при каждой рекурсии создаётся копия массив $arrTree. Но это затратно с точки зрения затрат памяти.
в принципе не критично в моей задаче, но чисто теоретически может кто-нить объяснить из-за чего reset( $arrTree ); не помогает?
немогу понять почему так.
вот код:
PHP:
function tree_ids( &$arrIds, &$arrTree, $_intId=0 ) {
foreach( $arrTree as $v ) {
if ( $v['pid']==$_intId ) {
$arrIds[]=$v['id'];
$this->tree_ids( $arrIds, $arrTree, $v['id'] );
}
}
}
дерево adjency list: id->pid.
додумался до того что пойнтер в массиве при каждой рекурсии не устанавливается на начала массива
поставил reset( $arrTree );
тоже не помогло !!!
только когда убрал амперсанд перед $arrTree заработало, оно и понятно
при каждой рекурсии создаётся копия массив $arrTree. Но это затратно с точки зрения затрат памяти.
в принципе не критично в моей задаче, но чисто теоретически может кто-нить объяснить из-за чего reset( $arrTree ); не помогает?