Я пытаюсь найти конкретный массив в другой. Я искал функции PHP, такие как array_intersect(), но это мне не очень нужно.
Вот моя проблема: у меня есть $array_1 = [5.3,5.0,6.7]
и $ array_2 = [5.0, 5.2,6.5,7.5,8.25]
. Мне нужно найти числа $ array_1 в $ array_2 с близкими значениями, и они должны быть последовательными.
В этом примере ошибка результата должна быть меньше 0,5. Итак, мне нужно: $array_1
найдено в $array_2
потому что значения массива 1 найдены в массиве 2 с заданной ошибкой.
Есть ли функция PHP, которая будет искать $ array_1 в $ array_2 с заданным eps. ошибка? Мне не удалось найти его на google.com
Надеюсь, моя идея и проблемы ясны для всех, кто мог бы помочь.
Заранее большое спасибо.
Я не уверен в вашей конечной цели, но этот код может помочь вам начать:
$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);