Имеем простой код:
$array = array('a', 'b', 'c', 'd');
foreach($array as $k => $v) {
if($v == 'c') {
return current($array);
}
}
//Вывод: d
Почему выводится значение из следующей итерации, а не из текущей? Ведь по логике мы не переходили к следующей итерации, а завершаем скрипт! В документации php нет примеров этой функции с использованием циклов.
В документации к foreach четко написано
перебирает массив, задаваемый с помощью array_expression. На каждой итерации значение текущего элемента присваивается переменной $value и внутренний указатель массива увеличивается на единицу (таким образом, на следующей итерации цикла работа будет происходить со следующим элементом).
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости