재귀 함수를 사용하여 트리에서 내 메뉴를 변환하고 있습니다. 나는 데이터베이스에서 가져온 배열은 :이 기능에 위에서 언급 한 배열을 전달하여 재귀 함수를 호출하고CodeIgniter에서 재귀 함수가 실패했습니다.
array (
[0] => stdClass Object (
[nav_group_id] => 1
[entity_id] => 1
[parent] => 0
[name] => Meter Reading
[link] => #)
[1] => stdClass Object (
[nav_group_id] => 1
[entity_id] => 2
[parent] => 0
[name] => Parameterization
[link] => #)
[2] => stdClass Object (
[nav_group_id] => 1
[entity_id] => 3
[parent] => 0
[name] => View Reports
[link] => #)
[3] => stdClass Object (
[nav_group_id] => 1
[entity_id] => 4
[parent] => 0
[name] => Management & Control
[link] => #)
[4] => stdClass Object (
[nav_group_id] => 1
[entity_id] => 5
[parent] => 1
[name] => Billing Data
[link] => #)
[5] => stdClass Object (
[nav_group_id] => 1
[entity_id] => 6
[parent] => 1
[name] => MDI Billing Data
[link] => #)
: 이제
$this->parseAndPrintTree('0',$navigation_all);
//die(); (issue here)
을 나는이 기능 후에 die();
를 사용하는 경우는 표시 올바른 메뉴 및 die();
를 사용하지 않을 경우 페이지가로드에 실패하고이 오류 제공 :
Content Encoding Error The page you are trying to view cannot be shown because it uses an invalid or unsupported form of compression."
을 ... 더 출력을 보여줍니다. 여기에 내 재귀 함수가있다 :
function parseAndPrintTree($root, $tree)
{
$return = array();
if(!is_null($tree) && count($tree) > 0)
{
echo '<ul>';
foreach($tree as $child => $parent)
{
if($parent->parent == $root)
{
unset($tree[$child]);
echo '<li>'.$parent->name;
$this->parseAndPrintTree($parent->entity_id, $tree);
echo '</li>';
}
}
echo '</ul>';
}
}
함수 뒤에'die();'를 붙이는 "수정"은 문제가 무엇인지 결정적이지 않습니다. 즉, 오류가 실제로 재귀 함수에서 발생한다는 보장이 없습니다. – nickb
@nickb하지만 내 코드가 명확하다. 문제가 있으면 아무 문제가 없다고 지적 해주세요. 무한 재귀가 일어나고 있다고 생각하지 않습니다. –
@nickb하지만 코드에 문제가 있으면 제 코드가 명확합니다. .. 나는 무한 재귀가 일어나고 있다고 생각하지 않는다 ... 또한 코드를 잘 사용하지 않으면 재귀 함수에 있다고 확신한다. –