2017-04-14 54 views
1

如何获取此递归函数中的最后一个parrNum如何从此函数返回上次更改parrNum

function findCountOfParents($arrayName,$case,$parrNum=0) 
{ 
    foreach ($arrayName as $key) 
    { 

     if ($case==$key['ID'] && $key['parent_id']!=0) 
     { 
      $p_id = $key['parent_id']; 
      $parrNum ++; 
      findCountOfParents($arrayName,$p_id,$parrNum); 
     } 
    } 
    return $parrNum; 
} 

回答

1

您需要将递归调用的返回值分配回变量。

function findCountOfParents($arrayName,$case,$parrNum=0) 
{ 
    foreach ($arrayName as $key) 
    { 

     if ($case==$key['ID'] && $key['parent_id']!=0) 
     { 
      $p_id = $key['parent_id']; 
      $parrNum = findCountOfParents($arrayName,$p_id,$parrNum + 1); 
     } 
    } 
    return $parrNum; 
}