php - 查找数组中的最大值

标签 php arrays loops multidimensional-array

我的要求是找到一个数组中的最大值/最大值,其中可能包含其他数组。例如,我们可以查看下面的数组。

$array =
    array(
        13,
        array(10, 4, 111, 3),
        4,
        array(23, 450, 12,array(110, 119, 20, 670), 45 ,45,67,89),
        );

$max = find_max($array, 0);

print "Maximumum Value is  $max";

我已经有了一个工作函数 find_max,但我只想知道除了下面给出的代码之外,还有什么最好和最有效可能的方法来做到这一点。

function find_max($array, $maxValue) {
    foreach ($array as $member) {
        if (is_array($member)) {
            $maxValue = find_max($member, $maxValue);
        } else {

            if($member==$maxValue){
                continue;
            }
            if ($member > $maxValue) {
                $maxValue = $member;
            }
        }
    }
    return $maxValue;
}

最佳答案

您找不到比 O(n) 或 linear time 更快的数组(或数组的数组)的最大值.

如果您需要不断地找到这个数组的最大值,我建议您对数组进行排序,或者尽可能使用不同的(排序的)数据结构。

您还可以保留对最大值的引用并在插入数据时更新它。显然,这是假设您自己插入数据而不是从其他地方获取数据,在这种情况下,我最后的评论对您来说毫无用处。

关于php - 查找数组中的最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12016084/

相关文章:

php - 检查某物是否为数组

php - 如何在 DatePeriod 中包含结束日期?

javascript - 剥离 PHP 数组的 JSON 编码

php - Linux PHP fatal error : Call to undefined function mysqli_connect()

arrays - golang如何将类型转换为字节数组

java - 当循环结束时如何获取第一个索引的范围?

javascript - 如何使用javascript读取php文件的内容

python - 从iterable设置numpy数组值的有效方法

python - 如何在 Python 2.x 中索引用户输入列表?

jquery - 应该是简单的 jQuery 循环,但似乎无法弄清楚如何循环