Задать вопрос
geometria
@geometria

Как получить json без индекса в Laravel?

Есть json-строка такого вида:
{
  "users": [
    {
      "id": "1",
      "name": "Маша",
      "login": "user"
}
...

Вынимаю ее этим кодом:
$url = $path.'?'.urldecode(http_build_query($params));
$response = Http::get($url);
$array = $response->json();

print_r($array );

//DB::table('users')->insert($array);

получаю не то что нужно для вставки в базу данных:
Array
(
    [0] => Array
        (
            [id] => 198
            [name] => Маша
            [login] => user


Как получить массив без [0] => Array?

array_values - не помогает
  • Вопрос задан
  • 70 просмотров
Подписаться 1 Простой 2 комментария
Пригласить эксперта
Ответы на вопрос 1
rc-dm
@rc-dm
Full-Stack Web Developer
$url = $path.'?'.urldecode(http_build_query($params));
$response = Http::get($url);
$array = $response->json();

// Извлекаем массив пользователей
$users = $array['users'];

// Вставляем данные в базу данных
foreach ($users as $userData) {
    DB::table('users')->insert($userData);
}

foreach ($users as $userData) — проходит по каждому элементу массива (пользователю) и вставляет его данные в базу данных.

Но как правило данные нужно подготовить в зависимости от количества и названий столбцов БД, это можно сделать примерно так:
$url = $path.'?'.urldecode(http_build_query($params));
$response = Http::get($url);
$array = $response->json();

// Извлекаем массив пользователей
$users = $array['users'];

// Вставляем данные в базу данных
foreach ($users as $userData) {
    // Меняем имена столбцов ("id" становится "user_id" и т.д.)
    $mappedData = [
        'user_id' => $userData['id'],
        'full_name' => $userData['name'], 
        'username' => $userData['login'], 
    ];

    // Вставляем данные в базу
    DB::table('users')->insert($mappedData);
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы