Привет люди. Я давно уже не из разряда новичков. Написал тонну кода за свою жизнь. Но тут я уже сломал голову. Код представлен в упрощенном виде PHP: $res=file_get_contents('data.txt'); $res=json_decode($res, true, JSON_UNESCAPED_UNICODE); foreach($res as $k => $v){ $a=get_first_func($v['main_name']); echo $v['add_name']; // отображает корректно $test_var=$v['add_name']; // для теста // a[1]['collect']=array(0,1,2,3,4,5); foreach($a[1]['collect'] as $k1 => $v1){ echo $v['add_name']; // пусто echo $test_var; // пусто echo $v['second_param']; // отображает корректно // $a[1] массив присутствует как и запланировано } echo $v['add_name']; // отображает корректно echo $test_var; // отображает корректно } Замечу, что данная проблема исключительно для некоторых add_name в документе json. Документ был записан с PHP: $json=json_encode($res, JSON_UNESCAPED_UNICODE); PHP около версии 5.4 Выходит, что проблема в utf-8? Первый раз такое встречается на моей памяти, что внутри foreach переменная теряет свое значение. Причем замечу, что за пределами (после) foreach переменная вполне себе со значением. PS размер строки не более 30 символов (string). PSS Попробую сервер перезагрузить, конечно, но полагаю, что проблема вовсе не решится. Буду признателен за мысли. Всем добра и уважения.
Если раскомментировать строку Код (Text): $a[1]['collect']=array(0,1,2,3,4,5); .. то $v['add_name'] внутри foreach появляется. Бред какой-то.
Ну вот... долбил 3 часа проблему, а все дело оказалось в пустом поле документа =) Никакой фантастики.. банальная усталость.