У меня проблемы с преобразованием результата запроса к базе данных в массив json.Мой вывод выглядит следующим образом:
{
"user_id": "1",
"username": "testuser1",
"user_permissions": [
{
"list_id": "1"
},
{
"list_id": "2"
},
{
"list_id": "3"
}
],
"android_app_id": null,
"iat": 1537694955,
"exp": 1537702155
}
Скобки ({}) вокруг массива JSON приводят к проблемам с синтаксическим анализом массива в ответе клиента.Мне просто нужно иметь простой массив типа (1, 2, 3).
Массив создается по результату запроса к базе данных (PHP), а затем с использованием операции SLIM3 $this->response->withJson
:
$query = "SELECT list_id FROM permissions WHERE user_id='$user_id'";
$sth = $this->dbconnection->prepare($query);
$sth->execute();
$result_permissions = $sth->fetchAll();
return $result_permissions;
У меня действительно есть проблемы с преобразованием результатов базы данных в обычные массивы JSON, потому что PHP знает только ассоциативные массивы (числовые или с ключами), что приводит к неправильному форматированию массивов json.
Вывод json возвращается на сервер.Используя SLIM3 Framework, я получаю доступ к данным JSON и массиву разрешений следующим образом: $user_permissions = $decoded_response['user_permissions'];
Теперь я пытаюсь получить список идентификаторов с $user_permissions[list'id][0]
, который дает 1, используя команду print_r
.
Что я хочу сделатьдалее используется запрос к базе данных с оператором IN для проверки идентификатора полномочий.Поэтому мне нужно создать массив типа (1, 2, 3) .. Я застрял прямо сейчас, потому что я не знаю, как создать такой массив из JSON ..
Для меня самый простойподход будет заключаться в том, чтобы непосредственно создать такой массив после запроса к базе данных и добавить его в JSON в начале, но я не знаю, как этого добиться.
Есть какие-нибудь подсказки?