У меня есть массив с положительными значениями типа int, как [4, 1, 75, 52, 5, 24]
.Мне нужно найти два значения с минимальной разницей.Кроме того, мне нужны оригинальные ключи этих двух.Итак, я отсортировал массив с asort()
, чтобы сохранить ключи.Теперь, когда я выполняю итерацию, у меня возникает проблема - я не могу использовать $key + 1
для указания на следующий элемент, а использование next()
и prev()
затрудняет получение ключей (когда вы используете следующий или предыдущий указатель перемещается):
for ($i = 0; $i < count($sorted)-1; $i++) {
if (current($sorted) - next($sorted) < $min) {
//echo prev($sorted) - next($sorted) . '<br>';
}
}
Что бы вы сделали?
(не стесняйтесь изменять массив в любой другой форме, если это облегчает - asort
не требуется)
Если мне нужнообъясните еще раз: у меня проблема с ключами.Поиск ближайших значений не является проблемой.