这是多维数组

$arr = array(
    array(141,151,161),
    2,
    3,
    array(
        101,
        202,
        array(303,404)
    )
);

如何找到最大值,上面数组中的结果应该是404。
阵列深度可以大于3。
这是我最后一次尝试的代码,但是我注意到这只能检查到3深度,我需要它可以检查无限深度。
function MaxArray($arr){
    foreach($arr as $valueDepth1){
        if(is_array($valueDepth1)){
            foreach($valueDepth1 as $valueDepth2){
                if(is_array($valueDepth2)){
                    foreach($valueDepth2 as $valueDepth3){
                        $checingArray[]=$valueDepth3;
                    }
                }else{
                    $checingArray[]=$valueDepth2;
                }
            }
        }else{
            $checingArray[]=$valueDepth1;
        }
    }

    return max($checingArray);
}

最佳答案

function highest($array) {
   foreach($array as $key => $value) {
       if (is_array($value)) {
           $array[$key] = highest($value);
       }
   }

   sort($array);

   return array_pop($array);
}

你可以在这里看到它:http://codepad.org/4xPFsU1U

08-16 20:29