情况:我有一个元素数量可变的多维数组。例如
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 脚本中执行此搜索?
你可以使用这个:https://www.php.net/manual/ro/function.max.php https://www.php.net/manual/ro/function.max.php
$test = array(
array('G', 'M', 2, 2),
array(1, 2222, 3)
);
$arr = max($test);
// 输出->
array(4) {
[0]=>
string(1) "G"
[1]=>
string(1) "M"
[2]=>
int(2)
[3]=>
int(2)
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)