Intereting Posts
Как использовать php-функцию без исходного файла загрузки? Как извлечь весь текст перед символом «@» в строке Как получить максимальную ценность определенного тега в XML-файле с помощью SimpleXML? Получение SUM путем добавления времени в PHP Как использовать sync () с дополнительными полями поворота Проблема с функцией session_start () (работает медленно) Арифметическая операция в конкатенации строк без круглых скобок вызывает странный результат Вытягивание данных изображения BLOB из MySQL в PHP Предупреждение: mysqli_num_rows () ожидает, что параметр 1 будет mysqli_result, null указан в Возврат данных обратно диспетчеру из наблюдателя событий в Magento php тот же результат, добавляющий различное количество vars Разница между эхом и возвратом в php? Открытие файла CSV Inline в браузере, а не приглашение DL ArrayAccess многомерный (un) набор? Есть ли встроенный способ получить все измененные / обновленные поля в объекте Doctrine 2

Почему php-итерация по ссылке возвращает дубликат последней записи?

Я просто потратил 2 часа на охоту на ошибку, которая, по-видимому, исходит из итерации foreach с ценностью. У меня многомерное массиво, и когда он запустил это:

foreach($arrayOfJsonMods as &$item){ //TODO memcached votes } 

и PHP возвратил массив с одним и тем же количеством элементов, но с последней записью DUPLICATE. Есть ли что-то, что я не понимаю об этой структуре?

Я запустил код на другой машине, и результат был таким же.

Я предполагаю, что вы повторно используете &$item здесь и что вы спотыкаетесь о поведении, которое было зарегистрировано как ошибка тысячу раз, но это правильное поведение ссылок, поэтому руководство советует :

Ссылка на значение $ и последний элемент массива остаются даже после цикла foreach. Рекомендуется уничтожить его unset ().

 foreach($arrayOfJsonMods as &$item) { //TODO memcached votes } unset($item); 

См. https://bugs.php.net/bug.php?id=29992