За последние 24 часа нас посетили 103917 программистов и 5652 робота. Сейчас ищут 2209 программистов ...

Как сделать чтобы json_encode всегда писал ключа массива

Тема в разделе "PHP для новичков", создана пользователем sound, 5 сен 2023.

Метки:
  1. sound

    sound Активный пользователь

    С нами с:
    6 янв 2017
    Сообщения:
    26
    Симпатии:
    1
    если массив где ключи [0], [1], [2] идут по порядку, например
    Array ( [0] => 11 [1] => 5 [2] => 3 )
    то json_encode возвращает
    ["11","5","3"]

    А если массив такой
    Array ( [0] => 11 [2] => 3 )
    то json_encode уже пишет ключ массива
    {"0":"11","2":"3"}

    Как сделать чтобы json_encode всегда писал ключ массива ?
    у меня в бд тип данных для поля json и я не могу сделать запрос когда нет ключей
     
  2. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.873
    Симпатии:
    753
    Адрес:
    Татарстан
    никак ... ключ массива он тебе пишет такой - какой там и есть

    если нужно просто значения без учета ключей - применить к массиву функцию перед записью
    array_values(массив)

    или ты про это?
    PHP:
    1. echo json_encode([1,2,333,44],JSON_FORCE_OBJECT);
     
    #2 ADSoft, 5 сен 2023
    Последнее редактирование: 5 сен 2023
    artoodetoo нравится это.
  3. Drunkenmunky

    Drunkenmunky Старожил

    С нами с:
    12 авг 2020
    Сообщения:
    1.511
    Симпатии:
    284
    PHP:
    1. $json = json_encode($array, JSON_FORCE_OBJECT);
     
  4. sound

    sound Активный пользователь

    С нами с:
    6 янв 2017
    Сообщения:
    26
    Симпатии:
    1
    1. Код (PHP):
      1. $json = json_encode($array, JSON_FORCE_OBJECT);
    ничего не изменил

    массив смотрю так
    Код (PHP):
    1. print_r($array);
     
  5. Drunkenmunky

    Drunkenmunky Старожил

    С нами с:
    12 авг 2020
    Сообщения:
    1.511
    Симпатии:
    284
    А зачем вы его смотрите?
     
    don.bidon нравится это.
  6. don.bidon

    don.bidon Активный пользователь

    С нами с:
    28 мар 2021
    Сообщения:
    945
    Симпатии:
    146
    смотри $json )
     
  7. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.125
    Симпатии:
    1.222
    Адрес:
    там-сям
    @sound во первых, обрати внимание на скобочки [] или {}, какие получаются в JSON. То что в PHP представляется как массив, не всегда реализуемо в JS как массив. Но может быть представлено как объект.

    По сути@ADSoft в #2 уже всё сказал, ты только не суетись и внимательно смотри на результат.