脚本宝典收集整理的这篇文章主要介绍了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,请注明来意。