У меня есть массив:
$myAssocArray = array(
['fred','tyson',23],
['collins', 'white', 54],
['mary', 'frost', 46]
);
Когда я json_encode
массив:
$jsonString = json_encode($myAssocArray);
echo $jsonString;
Я получаю:
[['fred','tyson',23],['collins', 'white', 54],['mary', 'frost', 46]]
Но я хотел бы получить следующий результат:
[{0:'fred',1:'tyson',2: 23},{0:'collins', 1:'white', 2: 54},{0:'mary', 1:'frost',2: 46}]
Вы можете передать
JSON_FORCE_OBJECT
во второй аргументjson_encode
, но это не даст точного значения, которое вы хотите.Пожалуйста, не используйте Markdown произвольно. Блоковые кавычки (
>
) предназначены для кавычек. Они не для акцента. См. coderhelper.com/editing-helpПривет, я думаю, что это ничего не значит в JSON
"[{'fred','tyson',23},{'collins', 'white', 54},{'mary', 'frost', 46}]"
.(a) Ваш PHP не является ассоциативным массивом, это просто массив массивов. (b) Вывод, который вы показываете, также представляет собой массив массивов, так что это имеет смысл. (c) Ваш ожидаемый результат не является допустимым JSON. Невозможно получить этот вывод из
json_encode()
.Кажется, это сработало после того, как я привел подмассивы к объектам.
Вы правы, должно быть что-то вроде '[{"0":"collins","1":"white"}]'. Я просто пытался описать проблему, не обязательно правильно понимать синтаксис.