@GRO24

Как найти обьект без ключа JSON decode PHP?

Приветствую всех.
Получаю JSON файл, декодирую его
{
    "response": [{
        "id": "29654",
        "user": "USER",

    }, 
......
]}

$array_decode = json_decode($url,true);
Хочу обратится напрямую -> $array_decode['response']['user'];
Но без ключа это не получается, почему?
Работаем только так
$array_decode['response'][идентф_ключа]['user'];
  • Вопрос задан
  • 101 просмотр
Пригласить эксперта
Ответы на вопрос 2
dyuriev
@dyuriev
A posteriori
<?php
  $json = '{"response": [{"id": "29654","user": "USER"}]}';

  $array = array_column(
    json_decode($json,true)['response'],'user','id'
  );
  var_dump($array);
?>


Получаем массив id=>user

array(1) {
  [29654]=>
  string(4) "USER"
}


Но немного бы точнее еще понять, что автор вопроса добиться пытается
Ответ написан
@alexalexes
Пересоберите массив пользователей:
$out_users = [];
foreach($array_decode['response'] as $user)
  $out_users[$user['id']]['user'] = $user['user'];

Тогда сможете обращаться как хотели:
$out_users[идентф_ключа]['user'];
PS: Вариант пересборки, если вас куча пользователей и вы ограничены по оперативной памяти скрипта:
$out_users = [];
foreach($array_decode['response'] as &$user) // обратите внимание на доступ по ссылке & к элементу массива
{
  $out_users[$user['id']]['user'] = $user['user'];
  unset($user); //удаляем элемент из массива $array_decode['response'], чтобы не росло использование памяти.
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы