Как получить массив объектов в PHP?

Я получаю следующие outout:

    "sendto": {
"0": {
"userid": "1",
"username": "jagat",
"isAccepted": "NO"},
"1": {
"userid": "4",
"username": "Rahil",
"isAccepted": "NO"},
}

Я хочу, как следующий вывод в ответе json:

  "sendto": [
{
"userid": "1",
"username": "jagat",
"isAccepted": "NO"},
{
"userid": "4",
"username": "Rahil",
"isAccepted": "NO"}
]

Пожалуйста, помогите мне. Спасибо

-1

Решение

PHP переводит массивы в объекты с json_encode если ключи не являются последовательными числами, начинающимися с 0, потому что в JavaScript массив не имеет ключей (у него есть индексы), но в PHP это возможно.

Так что-то вроде этого в PHP …

$data = [["foo" => "bar"],["baz" => "quix"],3=>["quax" => "quacks"]];
echo json_encode($data);

Дает тебе…

{
"0": {
"foo": "bar"},
"1": {
"baz": "quix"},
"3": {
"quax": "крякать"}
}

Так что если вы всегда хотите массив, вы должны обязательно использовать array_values перед кодированием с json_encode,

$data = [["foo" => "bar"],["baz" => "quix"],3=>["quax" => "quacks"]];
echo json_encode(array_values($data));

Теперь вы получаете …

[
{
"foo": "bar"},
{
"baz": "quix"},
{
"quax": "крякать"}
]

Поскольку ключи массива вернутся к 0, 1, 2 Это означает, что их можно безопасно сериализовать в JSON в виде массива. В противном случае PHP предполагает, что вы намеревались создать объект с ключами "0", "1", "3",

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]