php - 如何编写函数 Max($array),它返回 $array 或嵌套在 $array 中的某个数组中包含的最大值

标签 php

例如:

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

输出:606

最佳答案

你需要的是递归地遍历你的数组;这意味着 max 不是递归的函数不会“足够”。

但是,如果您查看 the manual page of max 上的用户注释,你会发现 this note from tim ,谁提出了这个递归函数(引用):

function multimax( $array ) {
    // use foreach to iterate over our input array.
    foreach( $array as $value ) {

        // check if $value is an array...
        if( is_array($value) ) {

            // ... $value is an array so recursively pass it into multimax() to
            // determine it's highest value.
            $subvalue = multimax($value);

            // if the returned $subvalue is greater than our current highest value,
            // set it as our $return value.
            if( $subvalue > $return ) {
                $return = $subvalue;
            }

        } elseif($value > $return) {
            // ... $value is not an array so set the return variable if it's greater
            // than our highest value so far.
            $return = $value;
        }
    }

    // return (what should be) the highest value from any dimension.
    return $return;
}

在您的阵列上使用它:
$arr= array(array(141,151,161),2,3,array(101,202,array(303,404)));
$max = multimax($arr);
var_dump($max);

给出:
int 404

当然,这需要更多的测试——但这至少应该是一个开始。

(查看手册页上的用户注释总是一个好主意:如果您遇到问题,很可能其他人已经遇到了该问题;-))

关于php - 如何编写函数 Max($array),它返回 $array 或嵌套在 $array 中的某个数组中包含的最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2309461/

相关文章:

php - Jquery iCal 插件的问题

php - 需要 php 数组转 json 的帮助

php - 比较 MySQL 和 PHP 之间的数据类型

php - mysql中存在order by字符串

php - Mod Rewrite - 正则表达式以包含除斜杠之外的所有内容

php - Yii2 QueryBuilder 更新与加入

php - 使用 php 和 jquery 将 xml 数据上传回服务器

javascript - 共享一个 javascript 函数的多个按钮

php - 使用 PHP cURL 发送 SMS 文本消息的简单 GET 请求

php - 通过 Mautic API 从外部 CRM 发送具有特殊属性的自定义电子邮件