让我们说以下是真的:
1
开始,每个都比最后一个多。1
。0
。1
。这是数组:
问题是: 找到第一个' 1'的最快/最聪明的方法是什么?在数组?
答案 0 :(得分:0)
如果你真的不知道数组的长度(非常奇怪的情况),那么你所能做的就是几何增长你的搜索,即跳过4,跳过8,跳过16等,直到找到1,然后用(几何)二分搜索减去。
答案 1 :(得分:0)
array_search
是您最好的选择
// Make up some data...
$data = [];
for ($i = 1; $i <= 20; ++$i) {
$data[$i] = rand(0,5);
}
var_dump($data);
// Find the first one...
echo 'The first 1 is at position: ' . array_search(1, $data);