Php 我的第一个递归函数本身调用不正确?

Php 我的第一个递归函数本身调用不正确?,php,arrays,Php,Arrays,这段代码应该查找组的最高值,而不管有多少嵌套数组。我第一次尝试创建一个函数,它将在每次事件发生时调用自身,即值是一个数组。为什么说我的变量没有定义 <?php $arr = array("1", "2", array("3", "4")); function getitMax($arr){ foreach ($arr as $value){ if(is_array($value)){ getitMax

这段代码应该查找组的最高值,而不管有多少嵌套数组。我第一次尝试创建一个函数,它将在每次事件发生时调用自身,即值是一个数组。为什么说我的变量没有定义

<?php
    $arr = array("1", "2", array("3", "4"));

    function getitMax($arr){
        foreach ($arr as $value){
            if(is_array($value)){
                getitMax($value);
            } else {
                $max_array=array($value);
            }
        }
    }
    getitMax($arr);

    echo max($max_array);
?>

您的问题是您只是在此处调用函数:

if(is_array($value)){
        getitMax($value);

}
-但对结果却无所作为。而且你的函数没有返回值,也就是说,结果将是空的。要解决此问题,请执行以下操作:

function  getitMax($arr)
{
    $max = null;
    foreach($arr as $value)
    {
        if(is_array($value))
        {
            $current = getitMax($value);
        }
        else 
        {
            $current = $value;
        }
        //assign max to current if current is larger:
        if($current>$max)
        {
           $max = $current;
        }
    }
    return $max;
}

尝试以下代码可能有点冗长:

<?php   
class GetMax {
    private $max_array = '';
    public function getitMax($arr){     
        foreach ($arr as $value){
            if(is_array($value)){
                $this->getitMax($value);
            } else {
                $this->max_array[] = $value;
            }
        }       
        return max($this->max_array);
    }
}

$m = new GetMax();
$arr = array("1", "2", array("3", "4"));
echo $m->getitMax($arr);
?>


您还没有发布任何代码。比我早4秒:)在函数中,您必须返回一些内容,并且在调用函数时必须将数据存储在某个位置。我想是的