У меня есть простой массив JSON, который я пытаюсь кодировать. Внутри строки JSON мне нужен еще один массив в квадратных скобках. Я не могу понять, как сделать квадратные скобки квадратными. Любой совет?
Вот мой код
$data = [ "item" => ["id" => "123456", "name" => "adam"] ];
$data_string = json_encode($data);
Вот вывод
{"item":{"id":"123456","name":"adam"}}
Что я надеюсь получить
{"item":["1123","1134","1184"]}
В JSON []
это массив и {}
это объект.
Массив содержит упорядоченный список значений.
Объект содержит неупорядоченную группу пар ключ / значение.
Если вам нужен массив, вы должны предоставить упорядоченный список значений (массив PHP), а не набор пар ключ / значение (ассоциативный массив PHP).
$data = [ "item" => ["id", "123456", "name", "adam"] ];
$data_string = json_encode($data);
дает
{"item":["id","123456","name","adam"]}
Насколько я помню, массив JSON не может иметь ключей и значений одновременно, как для javascript. Если у вас есть массив php с ключами и значениями, который будет преобразован в Object для JSON, удалите ключи из массива php, и вы также получите массив JSON.