Php递归函数不返回值

Php递归函数不返回值,php,recursion,magento2,Php,Recursion,Magento2,我使用这个递归函数来获取一个选项的父级。只要指针存在于数组键中,就意味着指针有一个父项。如果未找到,则指针没有任何父对象,因此它必须返回指针本身 get_parent_need(165,$hay); function get_parent_need($needle,$hay){ if(in_array($needle,array_keys($hay))){ get_parent_need($hay[$needle],array_keys($hay)); }else

我使用这个递归函数来获取一个选项的父级。只要指针存在于数组键中,就意味着指针有一个父项。如果未找到,则指针没有任何父对象,因此它必须返回指针本身

get_parent_need(165,$hay);
function get_parent_need($needle,$hay){
    if(in_array($needle,array_keys($hay))){
        get_parent_need($hay[$needle],array_keys($hay));
    }else{
        return $needle;
    }
}

无需使用递归,您可以使用

function get_parent_need($needle,$hay) {
    if(! in_array( $needle, array_keys( $hay ) ) ){
        return $needle;
    }
    return $hay;
}

为什么要调用
exit
?请提供一个数组的示例,我认为这会对我们有很大帮助。在玩赔率游戏lol时,实际上我尝试在调用函数的地方回显返回值,它什么也不返回,所以我添加了exit。。。我编辑了我的问题,用数据更新了问题,还添加了数组图像。如果找不到针,它将无限调用。不,这不是我需要的。我需要保持这个函数运行,直到它在数组中找不到指针,然后我需要返回指针。