Доступ по ключу к массиву из json

139
29 мая 2019, 10:10

Есть код, который берёт данные из json в массив, но при обращении по ключу к такому массиву доступ по ключу не работает.

$json = '{"1411":"фыафыва фвафыв","1410":"","1409":"","1411":"фыафыва фвафыв","1410":"tersy","1409":""}';
$images = (array)json_decode(stripslashes($json));
$ids = array (
    0 => '1411',
    1 => '1410',
);
$arr = array();
if(!empty($images)){
    foreach ($ids as $id){
        $arr[$id] = $images[$id];
    }
}
echo 'arr';
echo '<div><pre>';
echo var_export($arr,true);
echo '</pre></div>';
echo 'images';
echo '<div><pre>';
echo var_export($images,true);
echo '</pre></div>';

В результате вывод такой:

arr
array (
    1411 => NULL,
    1410 => NULL,
)
images
array (
    '1411' => 'фыафыва фвафыв',
    '1410' => 'tersy',
    '1409' => '',
)

а должно быть так:

array (
    1411 => 'фыафыва фвафыв',
    1410 => 'tersy',
)

как исправить подскажите?
пытался конвертировать ключ $id в строку, безрезультатно

Answer 1

Проблема в способе, которым декодируется json.

Если делать по-человечески, а именно

$images = json_decode($json, true);

то код будет работать в любой версии РНР.

READ ALSO
Передача данных в POST через ссылку

Передача данных в POST через ссылку

Имею такой ответ сервера при регистрации пользователя,ловил через Fiddler:

126
Как узнать количество полей в структуре?

Как узнать количество полей в структуре?

Как узнать количество полей в структуре?

124