


Не могу адекватно получить данные..
Друзья, объясните мне почему так происходит? и как быть?
в js я собрал массив и отправил его в php таким образом:
rez[i] = {i:i,id:id,val:val.value,key:key.value};
'rez':JSON.stringify(rez)
в php я получил данные так:
$rez = json_decode($_POST['rez']);
echo json_encode($rez[0]);
в консоле я получаю то что на скрине.
теперь когда я хочу получить к примеру id, я получаю в итоге null. выглядит это так:
$rez = array(), json_decode($_POST['rez']);
echo json_encode($rez[0][id]);
пробовал кавычки разные, ничего не помогло.. как так, я же получаю эти данные, почему не могу их обработать?

Если ты делаешь:
$rez = json_decode($_POST['rez']);
, то в $rez[0] у тебя объект и id получаем так:
echo $rez[0]->id;
А вот если ты делаешь:
$rez = json_decode($_POST['rez'], true);
, то в $rez у тебя массив и id получаем так, как ты и пытался сделать:
echo $rez[0]['id'];
Вот такое вот: $rez[0][id] (id без кавычек) - говнокод, который не надо использовать.
P.S. Чтобы посмотреть реальное содержимое $rez, используется:
var_dump($rez);
P.P.S. Если ты добавишь в начало PHP-скрипта:
error_reporting(E_ALL);
, то будешь получать (в логах PHP или в ответе сервера - в зависимости от других настроек) все ошибки и предупреждения. Это очень хорошо помогает и в улучшении качества собственного кода, и в поиске подобных ошибок. У тебя же, судя по всему, в настройках PHP уровень игнорирования ошибок и предупреждений задран до небес: проблемы есть, но ты их не видишь.