我正在尝试将特定数组搜索到另一个数组中。我一直在寻找像array_intersect()这样的PHP函数,但这不是我真正需要的。
这是我的麻烦:我有$array_1 = [5.3,5.0,6.7]
和$ array_2 = [5.0, 5.2,6.5,7.5,8.25]
。我需要在$ array_2中搜索$ array_1数字,并且它们应该是连续的。
在此示例中,结果错误应小于0.5。
所以,我应该在$array_1
中找到$array_2
,因为数组2中的数组1值存在给定错误。
是否有一个PHP函数会将$ array_1搜索到带有给定eps的$ array_2。错误?我无法在google.com上找到它
我希望每个可以提供帮助的人都明白我的想法和麻烦。
非常感谢你。
答案 0 :(得分:1)
我不确定您的最终目标,但此代码可能会让您入门:
$array_1 = array (5.3,5.0,6.7); #search for this
$array_2 = array (3.0, 4.4, 5.0, 5.2,6.5,7.5,8.25, 5.0, 5.2, 8.2, 5.0, 4.2, 4.1, 5.3,5.0,6.7); #inside this
$err = 0.5;
$matchkeys= array();
$i = 0;
$tmp_match = '';
foreach ($array_2 as $k => $v) { #crawl through array_2
if (abs($v - $array_1[$i]) < $err) {
echo "match at $k for $i \n";
if ($i==0) {$tmp_match = $k;}
$i++; #if array one matches, then check next array 1 against next array 2
if ($i == count($array_1)) { #done matching array_1 ?
$matchkeys[] = $tmp_match; //push first index value of compelte match to array
$tmp_match = '';
$i = 0;
}
}
else {
$tmp_match = '';
$i=0; #otherwise start over
}
}
echo "\n\n found complete matches in array_2 at index: \n";
print_r($matchkeys);