Php 在数组中搜索并以最佳方式找到1对?
假设我们有一个简单的(非assoc)数组,其中包含100001个值,这些值按未排序的顺序设置,如45、12、32、23。我们知道,在这个数组中有一对数字,如何找到它的最佳值-不是通过2个foreach循环,甚至不是通过2个for循环和100001/2除法 使用: 使用:Php 在数组中搜索并以最佳方式找到1对?,php,arrays,Php,Arrays,假设我们有一个简单的(非assoc)数组,其中包含100001个值,这些值按未排序的顺序设置,如45、12、32、23。我们知道,在这个数组中有一对数字,如何找到它的最佳值-不是通过2个foreach循环,甚至不是通过2个for循环和100001/2除法 使用: 使用: 由于数组未排序,因此除了随机散点以外,唯一的搜索方法是按顺序扫描数组并查找两个数字: $first_key = null; $second_key = null; foreach($array as $key => $v
由于数组未排序,因此除了随机散点以外,唯一的搜索方法是按顺序扫描数组并查找两个数字:
$first_key = null;
$second_key = null;
foreach($array as $key => $val) {
if ($val == $first_number) {
$first_key = $key;
}
if ($val == $second_number) {
$second_key = $key;
}
if (!is_null($first_key) && !is_null($second_key)) {
break;
}
}
一旦找到两个数字,或者到达数组的末尾,循环将退出。由于数组未排序,因此除了随机散点以外,唯一的搜索方法是按顺序扫描数组并查找两个数字:
$first_key = null;
$second_key = null;
foreach($array as $key => $val) {
if ($val == $first_number) {
$first_key = $key;
}
if ($val == $second_number) {
$second_key = $key;
}
if (!is_null($first_key) && !is_null($second_key)) {
break;
}
}
一旦找到两个数字,或者到达数组的末尾,循环将退出。那么从1到100000的数字和一个重复的还是什么?或者几个数字是什么?是的,1个,对不起,我只是个俄罗斯人-bad Engl=)就像我说的,我用两种方法解决了这个问题一种是通过数组做两个循环,一个一个比较,另一种是在2上除法,从开始/开始循环1-st,第二个从结束到结束/实际上是一半。那么数字从1到100000,还有一个重复,或者怎么样?或者说几个数字是什么?是的,1个简单,对不起,我只是个俄罗斯人-糟糕的英语=)就像我说的,我用两种方法解决了这个问题。一种是通过数组做两个循环,一个一个比较,另一种是在2上除法,从开始/开始循环1-st,从结束到开始/实际上是一半。伙计,放松点。1) 此代码将查找任意数字的任意对,“2”表示“对”。阅读手册。2) php函数总是比代码运行得更快。如果这是你的家庭作业和理论问题,那就在男人身上问吧,放松点。1) 此代码将查找任意数字的任意对,“2”表示“对”。阅读手册。2) php函数总是比代码运行得更快。如果这是你的家庭作业和理论问题-问它可能你的意思是这
foreach($arr AS$val1){foreach($arr AS$val2){If($val1===$val2)return$val1;}}
不,就像我说的,这是次优的,我知道这一点,并且已经写过了。伙计们,我读得很仔细。您发布了一些逗号分隔的数字片段,并说您想查找“两个数字”。也许你应该说,如果它是一个多维数组,或者更好,发布一大块var\u dump/print\r输出来演示它的真实外观。是吗?然后呢<代码>$array[0]=1$数组[100001]=42。好了,100001个数组元素。我的眼睛很好,你需要提高你的提问能力。也许你是说这是foreach($arr AS$val1){foreach($arr AS$val2){if($val1===$val2)return$val1;}}}
nope,就像我说的,这是次优的,我知道这一点,并且已经写过了。伙计们,我读得很仔细。您发布了一些逗号分隔的数字片段,并说您想查找“两个数字”。也许你应该说,如果它是一个多维数组,或者更好,发布一大块var\u dump/print\r输出来演示它的真实外观。是吗?然后呢<代码>$array[0]=1$数组[100001]=42。好了,100001个数组元素。我的眼睛很好,你需要提高你的提问能力。