php – 快速查找多维数组中最大的数组?

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php – 快速查找多维数组中最大的数组?脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
情况:我有一个具有可变数量元素的多维数组.例如

array(N) {
    0 => array(3) { ... },1 => array(8) { ... },2 => array(1) { ... },...
    M => array(12) { ... },...
    N-1 => array(7) { ... }
}

我想找到这个子数组中的最大元素数(在上面的例子中,它将是12).一个简单解决方案是O(N)线性搜索.

<?PHP
function max_length($2d_array) {
    $max = 0;
    foreach($2d_array as $child) {
        if(count($child) > $max) {
            $max = count($child);
        }
    }
    return $max;
}

但是,我不禁想知道是否有一些聪明的技巧来优化这种查找.所以我的问题是两个部分(虽然任何一个部分的答案都会解决它):

>是否有一种算法比O(N)更快地执行此搜索而不需要特殊要求(预先排序等)?
>在某个地方是否存在一个模糊的PHP函数,它将在本机代码而不是我的用户PHP脚本中执行此搜索

解决方法

不确定性能,但我认为以下应该有效:

$count = array_map('count',$input_arr);
$min = array_keys($count,max($count))[0];
$largest_arr = $input_arr[$min];

甚至:

$counts = array_map('count',$input_arr);
$key = array_flip($counts)[max($counts)];
$largest_arr = $input_arr[$key];

脚本宝典总结

以上是脚本宝典为你收集整理的php – 快速查找多维数组中最大的数组?全部内容,希望文章能够帮你解决php – 快速查找多维数组中最大的数组?所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。